include/ax/ax_menu_modal.h

Go to the documentation of this file.
00001 
00002 // Name:        ax_menu_modal.h
00003 // Purpose:     Modal menu class
00004 // Author:      Julian Smart
00005 // Modified by:
00006 // Created:     2009-03-20
00007 // RCS-ID:
00008 // Copyright:   (c) Julian Smart
00009 // Licence:     New BSD License
00011 
00012 #ifndef _AX_MENU_MODAL_H_
00013 #define _AX_MENU_MODAL_H_
00014 
00015 /*
00016  * Includes
00017  */
00018 
00019 #include "ax/ax_menu.h"
00020  
00021 /*
00022  * Forward declarations
00023  */
00024 
00025 class AxResource;
00026 class AxMenuController;
00027 class wxEventLoop;
00028 
00038 class AxModalMenu: public wxEvtHandler
00039 {
00040     DECLARE_CLASS( AxModalMenu )
00041 
00042 public:
00043 // Constructors
00044 
00045     AxModalMenu() { Init(); }
00046     AxModalMenu(AxMenuController* controller, AxMenuItem* item = NULL);
00047     
00048     ~AxModalMenu();
00049 
00050 // Operations
00051 
00052     void Init();
00053 
00056     virtual wxString ShowModal(AxMenu* childMenu = NULL);
00057 
00059     virtual bool EndModal(const wxString& returnCode);
00060 
00062     virtual bool Hide();
00063 
00064     AxMenuItem* GetMenuItem() const { return m_menuItem; }
00065     void SetMenuItem(AxMenuItem* item) { m_menuItem = item; }
00066 
00067     AxMenuController* GetController() const { return m_controller; }
00068     void SetController(AxMenuController* controller) { m_controller = controller; }
00069 
00070     const wxString& GetReturnCode() const { return m_returnCode; }
00071     void SetReturnCode(const wxString& code) { m_returnCode = code; }
00072 
00073     bool IsModal() const { return m_modalShowing; }
00074     void SetModal(bool modal) { m_modalShowing = modal; }
00075 
00076     void SetPreviousMenu(AxMenu* menu) { m_previousMenu = menu; }
00077     AxMenu* GetPreviousMenu() const { return m_previousMenu; }
00078 
00079     void SetMenu(AxMenu* menu) { m_menu = menu; }
00080     AxMenu* GetMenu() const { return m_menu; }
00081 
00082     bool RestorePreviousMenu();
00083 
00084 protected:
00085     AxMenuItem*         m_menuItem;
00086     AxMenuController*   m_controller;
00087     wxString            m_returnCode;
00088     wxEventLoop*        m_eventLoop;
00089     bool                m_modalShowing;
00090     AxMenu*             m_menu;
00091     AxMenu*             m_previousMenu;
00092 };
00093 
00094 #endif
00095     // _AX_MENU_MODAL_H_

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