xj qian
2024-10-18 918cf2c844f524641396e72c6ecebcc620c57813
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#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();
};
}}