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