00001 00002 // Name: commandeditorpanel.h 00003 // Purpose: 00004 // Author: Julian Smart 00005 // Modified by: 00006 // Created: 22/11/2008 13:32:13 00007 // RCS-ID: 00008 // Copyright: (c) Anthemion Software Limited 00009 // Licence: New BSD License 00011 00012 #ifndef _COMMANDEDITORPANEL_H_ 00013 #define _COMMANDEDITORPANEL_H_ 00014 00015 00020 00021 00022 00023 #include "commandeditor/commandeditor.h" 00024 #include "uiutils/uicustomization.h" 00025 00030 00031 class wxBoxSizer; 00032 class wxFlexGridSizer; 00034 00036 #define wxCOMMAND_EDITOR_VIEWERS_ONLY 0x0002 00037 00042 00043 #define ID_COMMAND_EDITOR_PANEL 21000 00044 #define ID_COMMAND_EDITOR_FILE_TYPES 21001 00045 #define ID_COMMAND_EDITOR_ADD_TYPE 21002 00046 #define ID_COMMAND_EDITOR_DELETE_TYPE 21003 00047 #define ID_COMMAND_EDITOR_EDIT_TYPE 21008 00048 #define ID_COMMAND_EDITOR_PANEL_VIEWER_COMBOCTRL 21004 00049 #define ID_COMMAND_EDITOR_PANEL_VIEWER_EDIT 21005 00050 #define ID_COMMAND_EDITOR_PANEL_EDITOR_COMBOCTRL 21006 00051 #define ID_COMMAND_EDITOR_PANEL_EDITOR_EDIT 21007 00052 #define SYMBOL_WXCOMMANDEDITORPANEL_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL 00053 #define SYMBOL_WXCOMMANDEDITORPANEL_TITLE _T("") 00054 #define SYMBOL_WXCOMMANDEDITORPANEL_IDNAME ID_COMMAND_EDITOR_PANEL 00055 #define SYMBOL_WXCOMMANDEDITORPANEL_SIZE wxSize(400, 300) 00056 #define SYMBOL_WXCOMMANDEDITORPANEL_POSITION wxDefaultPosition 00058 00059 00064 class wxCommandEditorPanel: public wxPanel 00065 { 00066 DECLARE_DYNAMIC_CLASS( wxCommandEditorPanel ) 00067 DECLARE_EVENT_TABLE() 00068 00069 public: 00071 wxCommandEditorPanel(); 00072 wxCommandEditorPanel( wxWindow* parent, wxWindowID id = SYMBOL_WXCOMMANDEDITORPANEL_IDNAME, const wxPoint& pos = SYMBOL_WXCOMMANDEDITORPANEL_POSITION, const wxSize& size = SYMBOL_WXCOMMANDEDITORPANEL_SIZE, long style = SYMBOL_WXCOMMANDEDITORPANEL_STYLE ); 00073 00075 bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXCOMMANDEDITORPANEL_IDNAME, const wxPoint& pos = SYMBOL_WXCOMMANDEDITORPANEL_POSITION, const wxSize& size = SYMBOL_WXCOMMANDEDITORPANEL_SIZE, long style = SYMBOL_WXCOMMANDEDITORPANEL_STYLE ); 00076 00078 ~wxCommandEditorPanel(); 00079 00081 void Init(); 00082 00084 void CreateControls(); 00085 00087 wxEditorCommandManager* GetCommandManager() { return m_commandManager; } 00088 void SetCommandManager(wxEditorCommandManager* manager) { m_commandManager = manager; } 00089 00091 void PopulateFileTypes(int sel = -1); 00092 00094 void ShowFileType(int i); 00095 00097 static void SetUseTooltips(bool useTooltips) { sm_useTooltips = useTooltips; } 00098 00100 static void SetUICustomization(wxUICustomization* uiCustomization) { m_uiCustomization = uiCustomization; } 00101 00103 00105 void OnCommandEditorFileTypesSelected( wxCommandEvent& event ); 00106 00108 void OnCommandEditorAddTypeClick( wxCommandEvent& event ); 00109 00111 void OnCommandEditorDeleteTypeClick( wxCommandEvent& event ); 00112 00114 void OnCommandEditorDeleteTypeUpdate( wxUpdateUIEvent& event ); 00115 00117 void OnCommandEditorEditTypeClick( wxCommandEvent& event ); 00118 00120 void OnCommandEditorEditTypeUpdate( wxUpdateUIEvent& event ); 00121 00123 void OnCommandEditorPanelViewerComboctrlSelected( wxCommandEvent& event ); 00124 00126 void OnCommandEditorPanelViewerEditClick( wxCommandEvent& event ); 00127 00129 void OnCommandEditorPanelViewerEditUpdate( wxUpdateUIEvent& event ); 00130 00132 void OnCommandEditorPanelEditorComboctrlSelected( wxCommandEvent& event ); 00133 00135 void OnCommandEditorPanelEditorEditClick( wxCommandEvent& event ); 00136 00138 void OnCommandEditorPanelEditorEditUpdate( wxUpdateUIEvent& event ); 00139 00141 00143 00145 wxBitmap GetBitmapResource( const wxString& name ); 00146 00148 wxIcon GetIconResource( const wxString& name ); 00150 00152 static bool ShowToolTips(); 00153 00155 wxComboBox* m_commandEditorFileTypeCombo; 00156 wxBoxSizer* m_addDeleteTypeSizer; 00157 wxFlexGridSizer* m_flexGridSizer; 00158 wxComboBox* m_commandEditorViewerCombo; 00159 wxButton* m_commandEditorViewerEditCtrl; 00160 wxStaticText* m_editorsLabelCtrl; 00161 wxComboBox* m_commandEditorEditorCombo; 00162 wxButton* m_commandEditorEditorEditCtrl; 00164 00165 wxEditorCommandManager* m_commandManager; 00166 00167 bool m_noUpdates; 00168 static bool sm_useTooltips; 00169 static wxUICustomization* m_uiCustomization; 00170 }; 00171 00172 #endif 00173 // _COMMANDEDITORPANEL_H_