#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(); } };