sourceeditctrl.h

00001 
00002 // File:        sourceedit.h
00003 // Purpose:     wxPackageSourceEditCtrl
00004 // Author:      Francesco Montorsi
00005 // Modified by:
00006 // Created:     2006-06-08
00007 // RCS-ID:      $Id: sourceeditctrl.h,v 1.1.1.1 2006/12/12 09:41:04 frm Exp $
00008 // Copyright:  (c) Francesco Montorsi
00009 // Licence:     wxWidgets licence
00011 
00012 #ifndef _PMSOURCEEDIT_H_
00013 #define _PMSOURCEEDIT_H_
00014 
00015 // includes
00016 #include "wx/stc/stc.h"
00017 
00018 // currently this control is used for read only
00019 #define ENABLE_EDIT_MODE            0
00020 
00021 // constants
00022 enum wxPackageSourceEditCtrlId
00023 {
00024     // edit menu
00025     ID_SEC_INDENTINC,
00026     ID_SEC_INDENTRED,
00027     ID_SEC_FINDNEXT,
00028     ID_SEC_REPLACE,
00029     ID_SEC_REPLACENEXT,
00030 
00031     // view menu
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 // wxPackageSourceEditCtrl
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:     // public API
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:    // event handlers
00081 
00082     // edit
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     // find
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     // view
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     // stc
00116     void OnMarginClick(wxStyledTextEvent &event);
00117     void OnCharAdded (wxStyledTextEvent &event);
00118 
00119 protected:
00120     // the font in use
00121     wxFont m_font;
00122 
00123 private:
00124     DECLARE_EVENT_TABLE()
00125 };
00126 
00127 #endif // _PMSOURCEEDIT_H_

Generated on Thu Feb 1 22:14:31 2007 for wxWidgets Package Manager by  doxygen 1.5.1-p1