00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef _AX_CONTAINERCTRL_H_
00013 #define _AX_CONTAINERCTRL_H_
00014
00015
00016
00017
00018
00020 #include "wx/listctrl.h"
00022
00023 #include "wx/timer.h"
00024
00025 #include "ax/ax_pagerctrl.h"
00026
00027
00028
00029
00030
00032 class AxMenuListCtrl;
00033 class AxPagerCtrl;
00035
00036 class AxMenuController;
00037
00042
00043 #define SYMBOL_AXCONTAINERCTRL_STYLE wxTAB_TRAVERSAL
00044 #define SYMBOL_AXCONTAINERCTRL_TITLE wxEmptyString
00045 #define SYMBOL_AXCONTAINERCTRL_IDNAME ID_AXCONTAINERCTRL
00046 #define SYMBOL_AXCONTAINERCTRL_SIZE wxSize(400, 300)
00047 #define SYMBOL_AXCONTAINERCTRL_POSITION wxDefaultPosition
00049
00050
00051 class AxContainerCtrlWakeUpIdleTimer: public wxTimer
00052 {
00053 public:
00054 virtual void Notify();
00055 };
00056
00057
00067 class AxContainerCtrl: public wxPanel
00068 {
00069 DECLARE_DYNAMIC_CLASS( AxContainerCtrl )
00070 DECLARE_EVENT_TABLE()
00071
00072 public:
00074 AxContainerCtrl();
00075 AxContainerCtrl( wxWindow* parent, wxWindowID id = SYMBOL_AXCONTAINERCTRL_IDNAME, const wxPoint& pos = SYMBOL_AXCONTAINERCTRL_POSITION, const wxSize& size = SYMBOL_AXCONTAINERCTRL_SIZE, long style = SYMBOL_AXCONTAINERCTRL_STYLE );
00076
00078 bool Create( wxWindow* parent, wxWindowID id = SYMBOL_AXCONTAINERCTRL_IDNAME, const wxPoint& pos = SYMBOL_AXCONTAINERCTRL_POSITION, const wxSize& size = SYMBOL_AXCONTAINERCTRL_SIZE, long style = SYMBOL_AXCONTAINERCTRL_STYLE );
00079
00081 ~AxContainerCtrl();
00082
00084 void Init();
00085
00087 void CreateControls();
00088
00089 AxMenuListCtrl* GetMenuCtrl() const { return m_menuCtrl; }
00090 wxTextCtrl* GetTitleCtrl() const { return m_titleCtrl; }
00091 wxTextCtrl* GetDescriptionCtrl() const { return m_descriptionCtrl; }
00092 AxPagerCtrl* GetPagerCtrl() const { return m_pagerCtrl; }
00093
00094 AxMenuController* GetController() const { return m_controller; }
00095 void SetController(AxMenuController* controller) { m_controller = controller; }
00096
00097 void OnSysColourChanged(wxSysColourChangedEvent& event);
00098
00100
00102 void OnIdle( wxIdleEvent& event );
00103
00105 void OnAnyKeyDown( wxListEvent& event );
00106
00108 void OnUpClick( wxCommandEvent& event );
00109
00111 void OnUpUpdate( wxUpdateUIEvent& event );
00112
00114 void OnHomeClick( wxCommandEvent& event );
00115
00117 void OnHomeUpdate( wxUpdateUIEvent& event );
00118
00120
00122
00124 wxBitmap GetBitmapResource( const wxString& name );
00125
00127 wxIcon GetIconResource( const wxString& name );
00129
00131 static bool ShowToolTips();
00132
00134 wxTextCtrl* m_titleCtrl;
00135 AxMenuListCtrl* m_menuCtrl;
00136 AxPagerCtrl* m_pagerCtrl;
00137 wxTextCtrl* m_descriptionCtrl;
00139 enum {
00140 ID_AXCONTAINERCTRL = 10000,
00141 ID_UP = 10004,
00142 ID_HOME = 10005
00143 };
00145
00146 AxMenuController* m_controller;
00147 AxContainerCtrlWakeUpIdleTimer m_wakeUpIdleTimer;
00148 };
00149
00150 #endif
00151