include/ax/ax_containerctrl.h

Go to the documentation of this file.
00001 
00002 // Name:        ax_containerctrl.h
00003 // Purpose:     
00004 // Author:      Julian Smart
00005 // Modified by: 
00006 // Created:     22/03/2009 10:08:34
00007 // RCS-ID:      
00008 // Copyright:   
00009 // Licence:     New BSD License
00011 
00012 #ifndef _AX_CONTAINERCTRL_H_
00013 #define _AX_CONTAINERCTRL_H_
00014 
00015 /*
00016  * Includes
00017  */
00018 
00020 #include "wx/listctrl.h"
00022 
00023 #include "wx/timer.h"
00024 
00025 #include "ax/ax_pagerctrl.h"
00026 
00027 /*
00028  * Forward declarations
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 // A timer class to wake up idle processing
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     // _AX_CONTAINERCTRL_H_

Generated on Wed May 6 19:20:18 2009 for AxTk by  doxygen 1.5.1