include/ax/ax_menu_speech_settings.h

Go to the documentation of this file.
00001 
00002 // Name:        ax_menu_speech_settings.h
00003 // Purpose:     Speech 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_SPEECH_SETTINGS_H_
00013 #define _AX_MENU_SPEECH_SETTINGS_H_
00014 
00015 /*
00016  * Includes
00017  */
00018 
00019 #include "ax/ax_activator.h"
00020 #include "ax/ax_menu.h"
00021 
00022 class AxSpeech;
00023 class AxChoiceMenuItem;
00024 class wxSpinEvent;
00025 
00032 class AxSpeechSettingsMenuItem: public AxMenuItem
00033 {
00034     DECLARE_CLASS( AxSpeechSettingsMenuItem )
00035     DECLARE_EVENT_TABLE( )
00036 
00037 public:
00038 // Constructors
00039 
00040     AxSpeechSettingsMenuItem(const AxSpeechSettingsMenuItem& item)
00041     { Copy(item); m_speech = item.m_speech; m_controller = item.m_controller; }
00042     AxSpeechSettingsMenuItem(AxMenuController* controller, AxSpeech* speech);
00043 
00044     void OnSelectEngine(wxCommandEvent& event);
00045     void OnSelectVoice(wxCommandEvent& event);
00046     void OnSelectVolume(wxSpinEvent& event);
00047     void OnSelectSpeed(wxSpinEvent& event);
00048     void OnSelectMultipleVoices(wxCommandEvent& event);
00049 
00050     void CheckCompatibleVoices();
00051 
00052     virtual AxMenuItem* Clone() { return new AxSpeechSettingsMenuItem(* this); }
00053 
00054 protected:
00055     AxSpeech*           m_speech;
00056     AxMenuController*   m_controller;
00057 };
00058 
00069 class AxSpeechSettingsActivator: public AxActivator
00070 {
00071 public:
00072     
00073     DECLARE_DYNAMIC_CLASS( AxSpeechSettingsActivator )
00074 
00075 public:
00076 // Constructors
00077 
00078     AxSpeechSettingsActivator() { Init(); }
00079 
00080     AxSpeechSettingsActivator(AxSpeech* speech) { m_speech = speech; }
00081 
00082     AxSpeechSettingsActivator(const AxSpeechSettingsActivator& activator) { Init(); Copy(activator); }
00083 
00084     void Init() { m_speech = NULL; m_mainVoicesItem = NULL; m_contentVoicesItem = NULL; }
00085 
00086     void Copy(const AxSpeechSettingsActivator& activator)
00087     {
00088         AxActivator::Copy(activator);
00089         m_speech = activator.m_speech;
00090         m_mainVoicesItem = activator.m_mainVoicesItem;
00091         m_contentVoicesItem = activator.m_contentVoicesItem;
00092     }
00093 
00094     virtual AxActivator* Clone() const { return new AxSpeechSettingsActivator(* this); }
00095 
00097     virtual AxMenu* Activate(AxMenuController* controller, AxMenuItem* item);
00098 
00099     AxChoiceMenuItem* GetVoicesItem(int channel) const { return channel == 0 ? m_mainVoicesItem : m_contentVoicesItem; }
00100 
00101 protected:
00102     AxSpeech*           m_speech;
00103     AxChoiceMenuItem*   m_mainVoicesItem;
00104     AxChoiceMenuItem*   m_contentVoicesItem;
00105 };
00106 
00107 #endif
00108     // _AX_MENU_SPEECH_SETTINGS_H_

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