#pragma once
|
|
#include "wobject/xcontrol.hpp"
|
#include "kobject/kxsedit.hpp"
|
|
using kxsedit = Hxsoft::XFrame::IXSEdit;
|
class xsedit : public xcontrol
|
{
|
public:
|
xsedit():xcontrol(nullptr){}
|
xsedit(void * implptr):xcontrol(implptr){}
|
kxsedit* getKXSEdit(){return (kxsedit*)this->GetNativePtr();}
|
public:
|
|
// @access public macro members
|
// @cmember return linenumber display flag
|
BOOL GetDisplayLinenumbers()
|
{
|
return getKXSEdit()->GetDisplayLinenumbers();
|
}
|
// @cmember return selection display flag
|
BOOL GetDisplaySelection()
|
{
|
return getKXSEdit()->GetDisplaySelection();
|
}
|
// @cmember return folding margin display flag
|
BOOL GetDisplayFolding()
|
{
|
return getKXSEdit()->GetDisplayFolding();
|
}
|
// @cmember set search flags
|
void SetSearchflags(int nSearchflags)
|
{
|
return getKXSEdit()->SetSearchflags(nSearchflags);
|
}
|
int GetSearchflags()
|
{
|
return getKXSEdit()->GetSearchflags();
|
}
|
|
public:
|
// @access public function members
|
// @cmember register a window class to use scintilla in a dialog
|
//static BOOL Register(CWinApp *app, UINT id);
|
// @cmember try to load Lexer DLL
|
static HMODULE LoadScintillaDll(LPCTSTR szLexerDll = NULL)
|
{
|
return kxsedit::LoadScintillaDll(szLexerDll);
|
}
|
// @cmember create window
|
// BOOL Create (LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
|
// @cmember Set Text to the Scintilla control
|
void SetText(LPCTSTR szText)
|
{
|
return getKXSEdit()->SetText(szText);
|
}
|
// @cmember Get Text from the Scintilla control
|
void GetText(LPTSTR& strText)
|
{
|
return getKXSEdit()->GetText(strText);
|
}
|
// @cmember Get Text from the Scintilla control
|
LPTSTR GetText()
|
{
|
return getKXSEdit()->GetText();
|
}
|
// @cmember Load a file
|
BOOL LoadFile(LPCTSTR szFile)
|
{
|
return getKXSEdit()->LoadFile(szFile);
|
}
|
// @cmember Save a file
|
BOOL SaveFile(LPCTSTR szFile)
|
{
|
return getKXSEdit()->SaveFile(szFile);
|
}
|
// @cmember try to find lexer format from extension
|
int GetFormatFromExtension(LPCTSTR szExtension)
|
{
|
return getKXSEdit()->GetFormatFromExtension(szExtension);
|
}
|
// @cmember calcluate number of chars needed for linenumberdisplay
|
int GetLinenumberChars()
|
{
|
return getKXSEdit()->GetLinenumberChars();
|
}
|
// @cmember calcluate number of pixels for linenumber display
|
int GetLinenumberWidth()
|
{
|
return getKXSEdit()->GetLinenumberWidth();
|
}
|
// @cmember set display of linenumbers on/off
|
void SetDisplayLinenumbers(BOOL bFlag = true)
|
{
|
return getKXSEdit()->SetDisplayLinenumbers(bFlag);
|
}
|
// @cmember set display of selection/bookmark margin on/off
|
void SetDisplaySelection(BOOL bFlag = true)
|
{
|
return getKXSEdit()->SetDisplaySelection(bFlag);
|
}
|
// @cmember set display of source folding margin on/off
|
void SetDisplayFolding(BOOL bFlag = true)
|
{
|
return getKXSEdit()->SetDisplayFolding(bFlag);
|
}
|
// @cmember cut selection to clipboard
|
void Cut()
|
{
|
return getKXSEdit()->Cut();
|
}
|
// @cmember copy selection to clipboard
|
void Copy()
|
{
|
return getKXSEdit()->Copy();
|
}
|
// @cmember paste from clipboard
|
void Paste()
|
{
|
return getKXSEdit()->Paste();
|
}
|
// @cmember clear selection
|
void Clear()
|
{
|
return getKXSEdit()->Clear();
|
}
|
// @cmember undo last change
|
void Undo()
|
{
|
return getKXSEdit()->Undo();
|
}
|
// @cmember redo last change
|
void Redo()
|
{
|
return getKXSEdit()->Redo();
|
}
|
// @cmember check if we can undo
|
BOOL CanUndo()
|
{
|
return getKXSEdit()->CanUndo();
|
}
|
// @cmember check if we can redo
|
BOOL CanRedo()
|
{
|
return getKXSEdit()->CanRedo();
|
}
|
// @cmember check if we have something to paste from clipboard
|
BOOL CanPaste()
|
{
|
return getKXSEdit()->CanPaste();
|
}
|
// @cmember select complete text
|
void SelectAll()
|
{
|
return getKXSEdit()->SelectAll();
|
}
|
// @cmember return the current line number
|
long GetCurrentLine()
|
{
|
return getKXSEdit()->GetCurrentLine();
|
}
|
// @cmember return the current column number
|
long GetCurrentColumn()
|
{
|
return getKXSEdit()->GetCurrentColumn();
|
}
|
// @cmember return the current character position within the file
|
long GetCurrentPosition()
|
{
|
return getKXSEdit()->GetCurrentPosition();
|
}
|
// @cmember return the current style number at the current character position
|
int GetCurrentStyle()
|
{
|
return getKXSEdit()->GetCurrentStyle();
|
}
|
// @cmember return the current folding level at the current character position
|
int GetCurrentFoldinglevel()
|
{
|
return getKXSEdit()->GetCurrentFoldinglevel();
|
}
|
// @cmember set the fontname for a style number
|
void SetFontname(int nStyle, LPCTSTR szFontname)
|
{
|
return getKXSEdit()->SetFontname(nStyle, szFontname);
|
}
|
// @cmember set the fontname height in points for a style number
|
void SetFontheight(int nStyle, int nHeight)
|
{
|
return getKXSEdit()->SetFontheight(nStyle, nHeight);
|
}
|
// @cmember set the foregroundcolor for a style number
|
void SetForeground(int nStyle, COLORREF crForeground)
|
{
|
return getKXSEdit()->SetForeground(nStyle, crForeground);
|
}
|
// @cmember set the backgroundcolor for a style number
|
void SetBackground(int nStyle, COLORREF crBackground)
|
{
|
return getKXSEdit()->SetBackground(nStyle,crBackground);
|
}
|
// @cmember set given style to bold
|
void SetBold(int nStyle, BOOL bFlag)
|
{
|
return getKXSEdit()->SetBold(nStyle,bFlag);
|
}
|
// @cmember set given style to bold
|
void SetItalic(int nStyle, BOOL bFlag)
|
{
|
return getKXSEdit()->SetItalic(nStyle,bFlag);
|
}
|
// @cmember set given style to bold
|
void SetUnderline(int nStyle, BOOL bFlag)
|
{
|
return getKXSEdit()->SetUnderline(nStyle,bFlag);
|
}
|
// @cmember get flag if we are in overstrike mode
|
BOOL GetOverstrike()
|
{
|
return getKXSEdit()->GetOverstrike();
|
}
|
// @cmember set flag for overstrike mode
|
void SetOverstrike(BOOL bOverstrike)
|
{
|
return getKXSEdit()->SetOverstrike(bOverstrike);
|
}
|
// @cmember init the view with reasonable defaults
|
void Init()
|
{
|
return getKXSEdit()->Init();
|
}
|
// @cmember called whenever the text is changed - we can update any indicators and do brace matching
|
void UpdateUI()
|
{
|
return getKXSEdit()->UpdateUI();
|
}
|
// @cmember do default folding
|
void DoDefaultFolding(int nMargin, long lPosition)
|
{
|
return getKXSEdit()->DoDefaultFolding(nMargin,lPosition);
|
}
|
// @cmember refresh lexer and display after new settings
|
void Refresh()
|
{
|
return getKXSEdit()-> Refresh();
|
}
|
// @cmember add a bookmark = marker type 0
|
void AddBookmark(long lLine)
|
{
|
return getKXSEdit()->AddBookmark(lLine);;
|
}
|
// @cmember delete a bookmark = marker type 0
|
void DeleteBookmark(long lLine)
|
{
|
return getKXSEdit()->DeleteBookmark(lLine);
|
}
|
// @cmember check for bookmark = marker type 0
|
BOOL HasBookmark(long lLine)
|
{
|
return getKXSEdit()->HasBookmark(lLine);
|
}
|
// @cmember Find next bookmark
|
void FindNextBookmark()
|
{
|
return getKXSEdit()->FindNextBookmark();
|
}
|
// @cmember Find previous bookmark
|
void FindPreviousBookmark()
|
{
|
return getKXSEdit()->FindPreviousBookmark();
|
}
|
// @cmember goto line
|
void GotoLine(long lLine)
|
{
|
return getKXSEdit()->GotoLine(lLine);
|
}
|
// @cmember goto position
|
void GotoPosition(long lPos)
|
{
|
return getKXSEdit()->GotoPosition(lPos);
|
}
|
// @cmember search forward for a given text
|
BOOL SearchForward(LPTSTR szText)
|
{
|
return getKXSEdit()->SearchForward(szText);
|
}
|
// @cmember search backward for a given text
|
BOOL SearchBackward(LPTSTR szText)
|
{
|
return getKXSEdit()->SearchBackward(szText);
|
}
|
// @cmember replace a text found by SearchForward or SearchBackward
|
void ReplaceSearchedText(LPCTSTR szText)
|
{
|
return getKXSEdit()->ReplaceSearchedText(szText);
|
}
|
// @cmember Set your own lexer
|
void SetLexer(int nLexer)
|
{
|
return getKXSEdit()->SetLexer(nLexer);
|
}
|
// @cmember return start position of selection
|
long GetSelectionStart()
|
{
|
//return getKXSEdit()->GetSelectionStart();
|
return -1;
|
}
|
// @cmember return end position of selection
|
long GetSelectionEnd()
|
{
|
//return getKXSEdit()->GetSelectionEnd();
|
return -1;
|
}
|
// @cmember get selected text
|
LPTSTR GetSelectedText()
|
{
|
return getKXSEdit()->GetSelectedText();
|
}
|
// @cmember replace all in buffer or selection
|
int ReplaceAll(LPTSTR szFind, LPTSTR szReplace, BOOL bSelection = true)
|
{
|
return getKXSEdit()->ReplaceAll(szFind,szReplace,bSelection);
|
}
|
public:
|
// @cmember load text
|
int LoadContent(xstring bstr, LPCTSTR ext = L".xml")
|
{
|
return getKXSEdit()->LoadContent((BSTR)bstr.c_str(), ext);
|
}
|
// @cmember set text
|
int SetContent(xstring bstr, LPCTSTR ext = L".xml")
|
{
|
return getKXSEdit()->SetContent((BSTR)bstr.c_str(), ext);
|
}
|
// @cmember get text
|
int GetContent(xstring& xs)
|
{
|
BSTR bstr = nullptr;
|
int ret = getKXSEdit()->GetContent(&bstr);
|
xs= xstring(bstr, true);
|
return 1;
|
}
|
public:
|
int OnFindDlg()
|
{
|
return getKXSEdit()->OnFindDlg();
|
}
|
int OnReplaceDlg()
|
{
|
return getKXSEdit()->OnReplaceDlg();
|
}
|
};
|