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