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