[Amis-vcs] SF.net SVN: amis: [2435] branches/amis3/AmisGuiMFC2
Brought to you by:
julienq,
marisademeglio
From: <dan...@us...> - 2008-03-18 12:16:51
|
Revision: 2435 http://amis.svn.sourceforge.net/amis/?rev=2435&view=rev Author: daniel_weck Date: 2008-03-18 05:16:56 -0700 (Tue, 18 Mar 2008) Log Message: ----------- - added self-voicing for (un)ticking check boxes in preference panel (using SPACE or MOUSE_CLICK or whatever) Modified Paths: -------------- branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp branches/amis3/AmisGuiMFC2/src/gui/self-voicing/Prompt.cpp Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h 2008-03-18 07:43:05 UTC (rev 2434) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h 2008-03-18 12:16:56 UTC (rev 2435) @@ -75,6 +75,8 @@ virtual void DoDataExchange(CDataExchange*); DECLARE_MESSAGE_MAP() private: + + void triggerVirtualKeyStroke(); void initializeTTSVoiceOption(); void initializeUiLanguageOption(); void setCurrentLanguageLabel(); Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp 2008-03-18 07:43:05 UTC (rev 2434) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp 2008-03-18 12:16:56 UTC (rev 2435) @@ -31,6 +31,7 @@ #include "ambulant/net/url.h" #include "gui/self-voicing/TTSPlayer.h" #include "gui/self-voicing/datamodel/DataTree.h" +#include "gui/MainWndParts.h" using namespace amis::gui::dialogs; @@ -302,9 +303,31 @@ return AmisDialogBase::PreTranslateMessage(pMsg); } +void PreferencesDialog::triggerVirtualKeyStroke() { + + CWnd* cwnd = this->GetFocus(); + MSG * msg = new MSG(); + + msg->message = WM_KEYDOWN; + msg->hwnd = cwnd->GetSafeHwnd(); + msg->lParam = 0; + msg->wParam = VK_UP; + + //PreTranslateMessage(msg); + mCommonPreTranslateMessageHandler->handle(this, msg, (cwnd == NULL ? -1 : cwnd->GetDlgCtrlID())); + + msg->message = WM_KEYUP; + + //PreTranslateMessage(msg); + mCommonPreTranslateMessageHandler->handle(this, msg, (cwnd == NULL ? -1 : cwnd->GetDlgCtrlID())); + + delete msg; +} + //widget event handlers void PreferencesDialog::OnBnClickedIsSelfVoicing() { + triggerVirtualKeyStroke(); } void PreferencesDialog::OnBnSetfocusIsSelfVoicing() { @@ -317,12 +340,14 @@ } void PreferencesDialog::OnBnClickedStartInBasicView() { + triggerVirtualKeyStroke(); } void PreferencesDialog::OnBnSetfocusStartInBasicView() { } void PreferencesDialog::OnBnClickedLoadLastBook() { + triggerVirtualKeyStroke(); } void PreferencesDialog::OnBnSetfocusLoadLastBook() { @@ -332,6 +357,7 @@ } void PreferencesDialog::OnBnClickedHighlightText() { + triggerVirtualKeyStroke(); } void PreferencesDialog::OnCbnSelchangeInstalledLanguages() { @@ -351,4 +377,5 @@ } void PreferencesDialog::OnBnClickedDisableScreensaver() { + triggerVirtualKeyStroke(); } \ No newline at end of file Modified: branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp 2008-03-18 07:43:05 UTC (rev 2434) +++ branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp 2008-03-18 12:16:56 UTC (rev 2435) @@ -334,17 +334,19 @@ } } - if (! strTextFieldFULL.IsEmpty()) { - if (strTextFieldFULL.GetLength() == 1) { - strTextFieldFULL = convertKeystrokeToSpeakableString(strTextFieldFULL.GetAt(0)); - } - mSeq->append(strTextFieldFULL); - } else if (! strTextField.IsEmpty()) { + if (! strTextField.IsEmpty()) { if (strTextField.GetLength() == 1) { strTextField = convertKeystrokeToSpeakableString(strTextField.GetAt(0)); } mSeq->append(strTextField); } + + if (! strTextFieldFULL.IsEmpty() && strTextField.Compare(strTextFieldFULL) != 0) { + if (strTextFieldFULL.GetLength() == 1) { + strTextFieldFULL = convertKeystrokeToSpeakableString(strTextFieldFULL.GetAt(0)); + } + mSeq->append(strTextFieldFULL); + } if (mSeq->GetCount() == 0) { delete mSeq; } else { @@ -359,8 +361,16 @@ if (!(pMsg->wParam == VK_HOME || pMsg->wParam == VK_END || pMsg->wParam == VK_UP || pMsg->wParam == VK_DOWN || pMsg->wParam == VK_LEFT || pMsg->wParam == VK_RIGHT)) { - + if (pMsg->wParam == VK_SPACE) + { + if (! strTextField.IsEmpty()) { + mSeq->append(convertKeystrokeToSpeakableString(pMsg, false, true, false)); + } + } + else + { mSeq->append(convertKeystrokeToSpeakableString(pMsg, false, true, false)); + } } if (! strTextField.IsEmpty()) { if (strTextField.GetLength() == 1) { Modified: branches/amis3/AmisGuiMFC2/src/gui/self-voicing/Prompt.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/self-voicing/Prompt.cpp 2008-03-18 07:43:05 UTC (rev 2434) +++ branches/amis3/AmisGuiMFC2/src/gui/self-voicing/Prompt.cpp 2008-03-18 12:16:56 UTC (rev 2435) @@ -32,6 +32,9 @@ void PromptItemBase::setContents(TextAudioPair* pContents) { + if (mpContents != NULL) + delete mpContents; + mpContents = pContents; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |