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