00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef _PMSOURCEEDIT_H_
00013 #define _PMSOURCEEDIT_H_
00014
00015
00016 #include "wx/stc/stc.h"
00017
00018
00019 #define ENABLE_EDIT_MODE 0
00020
00021
00022 enum wxPackageSourceEditCtrlId
00023 {
00024
00025 ID_SEC_INDENTINC,
00026 ID_SEC_INDENTRED,
00027 ID_SEC_FINDNEXT,
00028 ID_SEC_REPLACE,
00029 ID_SEC_REPLACENEXT,
00030
00031
00032 ID_SEC_DISPLAYEOL,
00033 ID_SEC_INDENTGUIDE,
00034 ID_SEC_LINENUMBER,
00035 ID_SEC_LONGLINEON,
00036 ID_SEC_WHITESPACE,
00037 ID_SEC_WRAPMODEON
00038 };
00039
00040
00041
00042
00043
00044
00045 class wxPackageSourceEditCtrl : public wxStyledTextCtrl
00046 {
00047 public:
00048 wxPackageSourceEditCtrl(wxWindow *parent, wxWindowID id = wxID_ANY,
00049 const wxPoint &pos = wxDefaultPosition,
00050 const wxSize &size = wxDefaultSize,
00051 long style = wxSUNKEN_BORDER|wxVSCROLL)
00052 {
00053 Create(parent, id, pos, size, style);
00054 }
00055
00056 bool Create(wxWindow *parent, wxWindowID id = wxID_ANY,
00057 const wxPoint &pos = wxDefaultPosition,
00058 const wxSize &size = wxDefaultSize,
00059 long style = wxSUNKEN_BORDER|wxVSCROLL);
00060
00061 virtual ~wxPackageSourceEditCtrl() {}
00062
00063
00064 public:
00065
00066 void UpdateSource(const wxString &source)
00067 {
00068 SetReadOnly(false);
00069 SetText(source);
00070 #if !ENABLE_EDIT_MODE
00071 SetReadOnly(true);
00072 #endif
00073 UpdateScrollWidth();
00074 }
00075
00076 void SetDefaultStyle();
00077 void UpdateScrollWidth();
00078 void EnableWrapMode(bool enable = true);
00079
00080 public:
00081
00082
00083 void OnEditRedo(wxCommandEvent &event);
00084 void OnEditUndo(wxCommandEvent &event);
00085 void OnEditClear(wxCommandEvent &event);
00086 void OnEditCut(wxCommandEvent &event);
00087 void OnEditCopy(wxCommandEvent &event);
00088 void OnEditPaste(wxCommandEvent &event);
00089
00090
00091 void OnFind(wxCommandEvent &event);
00092 void OnFindNext(wxCommandEvent &event);
00093 void OnReplace(wxCommandEvent &event);
00094 void OnReplaceNext(wxCommandEvent &event);
00095 void OnBraceMatch(wxCommandEvent &event);
00096 void OnGoto(wxCommandEvent &event);
00097 void OnEditIndentInc(wxCommandEvent &event);
00098 void OnEditIndentRed(wxCommandEvent &event);
00099 void OnEditSelectAll(wxCommandEvent &event);
00100 void OnEditSelectLine(wxCommandEvent &event);
00101
00102
00103 void OnHilightLang(wxCommandEvent &event);
00104 void OnDisplayEOL(wxCommandEvent &event);
00105 void OnIndentGuide(wxCommandEvent &event);
00106 void OnLineNumber(wxCommandEvent &event);
00107 void OnLongLineOn(wxCommandEvent &event);
00108 void OnWhiteSpace(wxCommandEvent &event);
00109 void OnFoldToggle(wxCommandEvent &event);
00110 void OnSetOverType(wxCommandEvent &event);
00111 void OnSetReadOnly(wxCommandEvent &event);
00112 void OnWrapmodeOn(wxCommandEvent &event);
00113 void OnUseCharset(wxCommandEvent &event);
00114
00115
00116 void OnMarginClick(wxStyledTextEvent &event);
00117 void OnCharAdded (wxStyledTextEvent &event);
00118
00119 protected:
00120
00121 wxFont m_font;
00122
00123 private:
00124 DECLARE_EVENT_TABLE()
00125 };
00126
00127 #endif // _PMSOURCEEDIT_H_