include/ax/ax_menu_visual_settings.h

Go to the documentation of this file.
00001 
00002 // Name:        ax_menu_visual_settings.h
00003 // Purpose:     Visual settings 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_VISUAL_SETTINGS_H_
00013 #define _AX_MENU_VISUAL_SETTINGS_H_
00014 
00015 /*
00016 TODO:
00017 
00018 Text size menu item, as a choice.
00019 
00020 Text colour menu item - need colour chooser
00021 
00022 Window colour menu item
00023 
00024 Container colour menu item
00025 
00026 Eventually - customisation of menu control
00027 
00028  */
00029 
00030 /*
00031  * Includes
00032  */
00033 
00034 #include "ax/ax_activator.h"
00035 #include "ax/ax_menu.h"
00036 
00037 class AxSpeech;
00038 class AxChoiceMenuItem;
00039 class wxSpinEvent;
00040 
00047 class AxVisualSettingsMenuItem: public AxMenuItem
00048 {
00049     DECLARE_CLASS( AxVisualSettingsMenuItem )
00050     DECLARE_EVENT_TABLE( )
00051 
00052 public:
00053 // Constructors
00054 
00055     AxVisualSettingsMenuItem(const AxVisualSettingsMenuItem& item)
00056     { Copy(item); m_speech = item.m_speech; m_controller = item.m_controller; }
00057     AxVisualSettingsMenuItem(AxMenuController* controller, AxSpeech* speech);
00058 
00059     void OnSelectTextSize(wxCommandEvent& event);
00060     void OnSelectTextColour(wxCommandEvent& event);
00061     void OnSelectWindowColour(wxCommandEvent& event);
00062     void OnSelectPanelColour(wxCommandEvent& event);
00063 
00064     virtual AxMenuItem* Clone() { return new AxVisualSettingsMenuItem(* this); }
00065 
00066 protected:
00067     AxSpeech*           m_speech;
00068     AxMenuController*   m_controller;
00069 };
00070 
00081 class AxVisualSettingsActivator: public AxActivator
00082 {
00083 public:
00084     
00085     DECLARE_DYNAMIC_CLASS( AxVisualSettingsActivator )
00086 
00087 public:
00088 // Constructors
00089 
00090     AxVisualSettingsActivator() { Init(); }
00091 
00092     AxVisualSettingsActivator(AxSpeech* speech) { m_speech = speech; }
00093 
00094     AxVisualSettingsActivator(const AxVisualSettingsActivator& activator) { Init(); Copy(activator); }
00095 
00096     void Init() { m_speech = NULL; m_mainVoicesItem = NULL; m_contentVoicesItem = NULL; }
00097 
00098     void Copy(const AxVisualSettingsActivator& activator)
00099     {
00100         AxActivator::Copy(activator);
00101         m_speech = activator.m_speech;
00102         m_mainVoicesItem = activator.m_mainVoicesItem;
00103         m_contentVoicesItem = activator.m_contentVoicesItem;
00104     }
00105 
00106     virtual AxActivator* Clone() const { return new AxVisualSettingsActivator(* this); }
00107 
00109     virtual AxMenu* Activate(AxMenuController* controller, AxMenuItem* item);
00110 
00111     AxChoiceMenuItem* GetVoicesItem(int channel) const { return channel == 0 ? m_mainVoicesItem : m_contentVoicesItem; }
00112 
00113 protected:
00114     AxSpeech*           m_speech;
00115     AxChoiceMenuItem*   m_mainVoicesItem;
00116     AxChoiceMenuItem*   m_contentVoicesItem;
00117 };
00118 
00119 #endif
00120     // _AX_MENU_VISUAL_SETTINGS_H_

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