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_