[Amis-vcs] SF.net SVN: amis: [2421] branches/amis3/AmisGuiMFC2
Brought to you by:
julienq,
marisademeglio
From: <dan...@us...> - 2008-03-18 01:50:08
|
Revision: 2421 http://amis.svn.sourceforge.net/amis/?rev=2421&view=rev Author: daniel_weck Date: 2008-03-17 18:50:14 -0700 (Mon, 17 Mar 2008) Log Message: ----------- - improved the text field self-voicing by using the "textFieldEntry" prompt from XML - added prompt-resolver to the base dialog class, and implemented publication summary read-out. Not yet interactive though (arrow keys). Modified Paths: -------------- branches/amis3/AmisGuiMFC2/include/gui/dialogs/AboutDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/AmisDialogBase.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/GoToPageDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/MultipleBooksOnVolumeDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/OpenUrlDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/PublicationSummaryDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/SearchForBooksDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/SkipDialog.h branches/amis3/AmisGuiMFC2/include/gui/dialogs/TextStyleDialog.h branches/amis3/AmisGuiMFC2/include/gui/self-voicing/AudioSequencePlayer.h branches/amis3/AmisGuiMFC2/src/gui/dialogs/AboutDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/AmisDialogBase.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/GoToPageDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/MultipleBooksOnVolumeDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/OpenUrlDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/PublicationSummaryDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/SearchForBooksDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/SkipDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/dialogs/TextStyleDialog.cpp branches/amis3/AmisGuiMFC2/src/gui/self-voicing/AudioSequencePlayer.cpp branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/AboutDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/AboutDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/AboutDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -35,6 +35,9 @@ class AboutDialog : public AmisDialogBase { public: + + void resolvePromptVariables(Prompt*); + AboutDialog(); ~AboutDialog(){}; Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/AmisDialogBase.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/AmisDialogBase.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/AmisDialogBase.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -32,9 +32,10 @@ { namespace dialogs { -class AmisDialogBase : public CDialog +class AmisDialogBase : public CDialog, public PromptResolver { public: + void resolvePromptVariables(Prompt*); AmisDialogBase(int); ~AmisDialogBase(); void on_init(); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/GoToPageDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/GoToPageDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/GoToPageDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -35,6 +35,8 @@ class GoToPageDialog : public AmisDialogBase { public: + void resolvePromptVariables(Prompt*); + GoToPageDialog(CWnd* pParent = NULL); ~GoToPageDialog(); //Dialog Data Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/MultipleBooksOnVolumeDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/MultipleBooksOnVolumeDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/MultipleBooksOnVolumeDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -36,6 +36,8 @@ class MultipleBooksOnVolumeDialog : public AmisDialogBase { public: + void resolvePromptVariables(Prompt*); + //the pUrlList parameter has a default value only because the compiler requires it MultipleBooksOnVolumeDialog(CWnd* pParent = NULL, amis::UrlList* pUrlList = NULL); ~MultipleBooksOnVolumeDialog(); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/OpenUrlDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/OpenUrlDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/OpenUrlDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -37,6 +37,8 @@ //DECLARE_DYNAMIC(OpenUrlDialog) public: + void resolvePromptVariables(Prompt*); + OpenUrlDialog(CWnd* pParent = NULL); virtual ~OpenUrlDialog(); virtual BOOL OnInitDialog(); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/PreferencesDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -36,6 +36,8 @@ class PreferencesDialog : public AmisDialogBase { public: + void resolvePromptVariables(Prompt*); + PreferencesDialog(CWnd* pParent = NULL); ~PreferencesDialog(); virtual BOOL PreTranslateMessage(MSG*); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/PublicationSummaryDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/PublicationSummaryDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/PublicationSummaryDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -36,6 +36,7 @@ class PublicationSummaryDialog : public AmisDialogBase { public: + void resolvePromptVariables(Prompt*); PublicationSummaryDialog(CWnd* pParent = NULL); ~PublicationSummaryDialog(); virtual BOOL PreTranslateMessage(MSG*); @@ -50,6 +51,8 @@ DECLARE_MESSAGE_MAP() private: + CString computeTitle(); + CString computeAuthor(); bool calculateData(); void displayData(); void appendToList(CListCtrl*, CString, wstring); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/SearchForBooksDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/SearchForBooksDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/SearchForBooksDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -36,6 +36,8 @@ class SearchForBooksDialog : public AmisDialogBase { public: + void resolvePromptVariables(Prompt*); + SearchForBooksDialog(CWnd* pParent = NULL); ~SearchForBooksDialog(); ambulant::net::url getBookToLoad(); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/SkipDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/SkipDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/SkipDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -40,6 +40,8 @@ friend class SkipDialogVoicing; public: + void resolvePromptVariables(Prompt*); + SkipDialog(CWnd* pParent = NULL); ~SkipDialog(); void initializeData(amis::dtb::CustomTestSet*); Modified: branches/amis3/AmisGuiMFC2/include/gui/dialogs/TextStyleDialog.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/dialogs/TextStyleDialog.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/dialogs/TextStyleDialog.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -37,6 +37,8 @@ class TextStyleDialog : public AmisDialogBase { public: + void resolvePromptVariables(Prompt*); + TextStyleDialog(CWnd* pParent = NULL); ~TextStyleDialog(); enum { IDD = IDD_TEXTSTYLE }; Modified: branches/amis3/AmisGuiMFC2/include/gui/self-voicing/AudioSequencePlayer.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/self-voicing/AudioSequencePlayer.h 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/include/gui/self-voicing/AudioSequencePlayer.h 2008-03-18 01:50:14 UTC (rev 2421) @@ -75,11 +75,11 @@ static void playPromptFromStringId(string); static void playPromptItemFromStringId(string); static void playDialogInstructionsFromUiId(int nItemID); - static void playDialogTextControlsFromUiId(int nItemID); + static void playDialogTextControlsFromUiId(int nItemID, PromptResolver* pResolver); static AudioSequence * playDialogControlFromUiIds(int dlgID, int ctrlId, bool playNow = true); static void fillSequenceContainerPromptFromId(AudioSequence* seq, string id); - static void fillSequencePrompt(AudioSequence* seq, Prompt* prompt, PromptResolver* pResolver = NULL); + static void fillSequencePrompt(AudioSequence* seq, Prompt* prompt, PromptResolver* pResolver); static void fillSequenceCaptionAndDescription(AudioSequence* seq, UiItem* uiItem); static void fillSequenceSwitch(AudioSequence* seq, UiItem* uiItem, string switchCondition = ""); static void fillSequenceContentAndPrompt(AudioSequence* seq, Label* label); Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/AboutDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/AboutDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/AboutDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -25,6 +25,9 @@ using namespace amis::gui::dialogs; +void AboutDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} AboutDialog::AboutDialog() : AmisDialogBase(AboutDialog::IDD) { } Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/AmisDialogBase.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/AmisDialogBase.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/AmisDialogBase.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -31,6 +31,9 @@ IMPLEMENT_DYNAMIC(AmisDialogBase, CDialog) //IMPLEMENT_DYNCREATE(AmisDialogBase, CDialog) +void AmisDialogBase::resolvePromptVariables(Prompt* pPrompt) { + return; +} BOOL AmisDialogBase::PreTranslateMessageTextField(MSG* pMsg, UINT id) { if (Preferences::Instance()->getIsSelfVoicing() == false) @@ -132,7 +135,7 @@ { if (amis::Preferences::Instance()->getIsSelfVoicing() == true) { - AudioSequencePlayer::playDialogTextControlsFromUiId(mId); + AudioSequencePlayer::playDialogTextControlsFromUiId(mId, this); } mbFlag_FirstDraw = false; } Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/GoToPageDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/GoToPageDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/GoToPageDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -28,6 +28,10 @@ using namespace amis::gui::dialogs; +void GoToPageDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} + GoToPageDialog::GoToPageDialog(CWnd* pParent /*=NULL*/) : AmisDialogBase(GoToPageDialog::IDD) { Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/MultipleBooksOnVolumeDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/MultipleBooksOnVolumeDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/MultipleBooksOnVolumeDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -33,6 +33,11 @@ ON_BN_CLICKED(IDC_OPENBOOK, OnOpenbook) END_MESSAGE_MAP() + +void MultipleBooksOnVolumeDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} + MultipleBooksOnVolumeDialog::MultipleBooksOnVolumeDialog(CWnd* pParent /*=NULL*/, amis::UrlList* pUrlList) : AmisDialogBase(MultipleBooksOnVolumeDialog::IDD) { Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/OpenUrlDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/OpenUrlDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/OpenUrlDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -31,6 +31,9 @@ //IMPLEMENT_DYNAMIC(OpenUrlDialog, CDialog) +void OpenUrlDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} OpenUrlDialog::OpenUrlDialog(CWnd* pParent /*=NULL*/) : AmisDialogBase(OpenUrlDialog::IDD) { Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/PreferencesDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -52,6 +52,10 @@ ON_WM_PAINT() END_MESSAGE_MAP() +void PreferencesDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} + PreferencesDialog::PreferencesDialog(CWnd* pParent /*=NULL*/) : AmisDialogBase(PreferencesDialog::IDD) { Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/PublicationSummaryDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/PublicationSummaryDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/PublicationSummaryDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -234,14 +234,10 @@ wstring wvalue; int idx = 0; - if (mpTitle != NULL) value = mpTitle->getText()->getTextString().c_str(); - else value = _T("Title not available"); - wvalue = value; + wvalue = computeTitle(); appendToList(p_list, title, wvalue); - if (mCreator.size() > 0) value = mCreator.c_str(); - else value = _T("Author not available"); - wvalue = value; + wvalue = computeAuthor(); appendToList(p_list, author, wvalue); appendToList(p_list, publisher, mPublisher); @@ -267,6 +263,136 @@ } } +CString PublicationSummaryDialog::computeAuthor() { + CString value; + + if (mCreator.size() > 0) value = mCreator.c_str(); + else value = _T("Author not available"); + + return value; +} +CString PublicationSummaryDialog::computeTitle() { + CString value; + + if (mpTitle != NULL) value = mpTitle->getText()->getTextString().c_str(); + else value = _T("Title not available"); + + return value; +} +void PublicationSummaryDialog::resolvePromptVariables(Prompt* pPrompt) { + + PromptVar* p_var = NULL; + + for (int i=0; i<pPrompt->getNumberOfItems(); i++) + { + if (pPrompt->getItem(i)->getPromptItemType() == PROMPT_VARIABLE) + { + p_var = (PromptVar*)pPrompt->getItem(i); + + if (p_var->getName() == "META_TITLE") + { + amis::AudioNode * node = mpTitle->getAudio(0); + + wstring str; + str = computeTitle(); + + if (node == NULL) { + p_var->setContents(str, ""); + } else { + p_var->setContents(str, node); + } + } + else if (p_var->getName() == "META_CREATOR") + { + wstring str; + str = computeAuthor(); + p_var->setContents(str, ""); + } + + else if (p_var->getName() == "META_PUBLISHER") + { + p_var->setContents(mPublisher, ""); + } + else if (p_var->getName() == "META_DESC") + { + p_var->setContents(mDescription, ""); + } + else if (p_var->getName() == "META_NARRATOR") + { + p_var->setContents(mNarrator, ""); + } + else if (p_var->getName() == "META_TOTALTIME") + { + p_var->setContents(mTotalTime, ""); + } + else if (p_var->getName() == "META_NUMPAGES") + { + CString value; + value.Format(_T("%d"), mTotalNumPages); + wstring str; + str = value; + p_var->setContents(str, ""); + } + else if (p_var->getName() == "META_DATE") + { + p_var->setContents(mDate, ""); + } + else if (p_var->getName() == "META_FORMAT") + { + p_var->setContents(mFormat, ""); + } + else if (p_var->getName() == "META_TOCITEMS") + { + p_var->setContents(mNavigableItems, ""); + } + + else if (p_var->getName() == "CURRENT_PAGE") + { + if (mpCurrentPage != NULL) { + p_var->setContents(mpCurrentPage->getText()->getTextString(), mpCurrentPage->getAudio(0)); + } + } + else if (p_var->getName() == "CURRENT_TIME") + { + p_var->setContents(L"TODO", ""); + } + + else if (p_var->getName() == "CURRENT_SECTION_TITLE") + { + if (mpSectionName != NULL) + { + p_var->setContents(mpSectionName->getText()->getTextString(), mpSectionName->getAudio(0)); + } + } + + else if (p_var->getName() == "CURRENT_SECTION_NUM_SUBSECTIONS") + { + CString value; + value.Format(_T("%d"), mNumSubsections); + wstring str; + str = value; + p_var->setContents(str, ""); + } + + else if (p_var->getName() == "CURRENT_SECTION_NUM_PAGES") + { + CString value; + value.Format(_T("%d"), mNumPagesForSection); + wstring str; + str = value; + p_var->setContents(str, ""); + } + + //TODO: what about the variables below: + //META_DEPTH + //TOC_CATEGORIES + // ?? + + } + } + AmisDialogBase::resolvePromptVariables(pPrompt); +} + void PublicationSummaryDialog::appendToList(CListCtrl* pList, CString field, wstring value) { //don't add empty items Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/SearchForBooksDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/SearchForBooksDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/SearchForBooksDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -37,6 +37,11 @@ ON_BN_CLICKED(IDC_OPENBOOK, OnOpenbook) END_MESSAGE_MAP() + +void SearchForBooksDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} + SearchForBooksDialog::SearchForBooksDialog(CWnd* pParent /*=NULL*/) : AmisDialogBase(SearchForBooksDialog::IDD) { Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/SkipDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/SkipDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/SkipDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -37,6 +37,11 @@ amis::gui::dialogs::SkipDialogVoicing * mpSkipDialogVoicing = NULL; + +void SkipDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} + SkipDialog::SkipDialog(CWnd* pParent /*=NULL*/) : AmisDialogBase(SkipDialog::IDD) { Modified: branches/amis3/AmisGuiMFC2/src/gui/dialogs/TextStyleDialog.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/dialogs/TextStyleDialog.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/dialogs/TextStyleDialog.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -42,6 +42,10 @@ ON_WM_PAINT() END_MESSAGE_MAP() +void TextStyleDialog::resolvePromptVariables(Prompt* pPrompt) { + return; +} + BOOL CALLBACK EnumFontCallback (LPLOGFONT lplf, LPTEXTMETRIC lptm, DWORD dwType, LPARAM lpData) { USES_CONVERSION; Modified: branches/amis3/AmisGuiMFC2/src/gui/self-voicing/AudioSequencePlayer.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/self-voicing/AudioSequencePlayer.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/self-voicing/AudioSequencePlayer.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -968,22 +968,18 @@ // This works for Prompts. void AudioSequencePlayer::playPromptFromStringId(string promptId) { - - - Prompt* p_prompt_ = DataTree::Instance()->findPrompt(promptId); if (p_prompt_ != NULL) { - AudioSequence * seq = new AudioSequence; + AudioSequence * seq = new AudioSequence; fillSequencePrompt(seq, p_prompt_, NULL); if (seq->GetCount() == 0) { delete seq; } else { - AudioSequencePlayer::Instance()->Play(seq); + AudioSequencePlayer::Instance()->Play(seq); } } - } //////////////////////////////////////////////////////////////////////////////////// @@ -1020,7 +1016,7 @@ if (p_dialog != NULL) { Prompt* prompt = p_dialog->getPrompt("instructions"); if (prompt != NULL) { - fillSequencePrompt(seq, prompt); + fillSequencePrompt(seq, prompt, NULL); } } if (seq->GetCount() == 0) { @@ -1036,7 +1032,7 @@ //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// // This works for Dialogs -void AudioSequencePlayer::playDialogTextControlsFromUiId(int nItemID) { +void AudioSequencePlayer::playDialogTextControlsFromUiId(int nItemID, PromptResolver * presolver) { if (nItemID != -1) { @@ -1055,6 +1051,19 @@ if (-1 == find) { fillSequenceCaptionAndDescription(seq, control); } + + LabelList* p_list = control->getLabelList(); + if (p_list != NULL) + { + for (int i = 0; i<p_list->getNumberOfLabels(); i++) + { + Prompt* p_prompt = p_list->getLabel(i)->getPrompt(); + if (p_prompt != NULL) + { + fillSequencePrompt(seq, p_prompt, presolver); + } + } + } } } Modified: branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp 2008-03-17 23:48:20 UTC (rev 2420) +++ branches/amis3/AmisGuiMFC2/src/gui/self-voicing/PreTranslateMessageHandler.cpp 2008-03-18 01:50:14 UTC (rev 2421) @@ -1,6 +1,9 @@ #include "gui/self-voicing/pretranslatemessagehandler.h" +#include "gui/self-voicing/datamodel/UiItem.h" +#include "gui/self-voicing/datamodel/DataTree.h" + #include "../../AmisGuiMFC2/resource.h" //#include "gui/AmisApp.h" @@ -273,17 +276,27 @@ AudioSequencePlayer::Instance()->RepeatLast(); return; } - else if(pMsg->wParam == 'T' && mbKeyControl == true && !strTextFieldFULL.IsEmpty()) + else if(pMsg->wParam == 'T' && mbKeyControl == true) { AudioSequence * mSeq = new AudioSequence(); mbKeyControl = false; - if (strTextFieldFULL.GetLength() == 1) { - strTextFieldFULL = convertKeystrokeToSpeakableString(strTextFieldFULL.GetAt(0)); + + Prompt* p_prompt_ = DataTree::Instance()->findPrompt("textFieldEntry"); + + if (p_prompt_ != NULL) + { + AudioSequencePlayer::Instance()->fillSequencePrompt(mSeq, p_prompt_, NULL); } - mSeq->append(strTextFieldFULL); + + if (!strTextFieldFULL.IsEmpty()) { + if (strTextFieldFULL.GetLength() == 1) { + strTextFieldFULL = convertKeystrokeToSpeakableString(strTextFieldFULL.GetAt(0)); + } + mSeq->append(strTextFieldFULL); + } AudioSequencePlayer::Instance()->Play(mSeq); - + return; } else { @@ -310,9 +323,14 @@ mSeq = new AudioSequence(); - if (idUiFocus == IDC_URL && strTextFieldFULL.IsEmpty() && strTextField.IsEmpty()) { + if (idUiFocus == IDC_URL) { - mSeq->append("text"); + Prompt* p_prompt_ = DataTree::Instance()->findPrompt("textFieldEntry"); + + if (p_prompt_ != NULL) + { + AudioSequencePlayer::Instance()->fillSequencePrompt(mSeq, p_prompt_, NULL); + } } } @@ -320,14 +338,13 @@ if (strTextFieldFULL.GetLength() == 1) { strTextFieldFULL = convertKeystrokeToSpeakableString(strTextFieldFULL.GetAt(0)); } - mSeq->prepend(strTextFieldFULL); + mSeq->append(strTextFieldFULL); } else if (! strTextField.IsEmpty()) { if (strTextField.GetLength() == 1) { strTextField = convertKeystrokeToSpeakableString(strTextField.GetAt(0)); } - mSeq->prepend(strTextField); + mSeq->append(strTextField); } - if (mSeq->GetCount() == 0) { delete mSeq; } else { @@ -351,6 +368,13 @@ } mSeq->append(strTextField); if (strTextField.Compare(strTextFieldFULL) != 0) { + + Prompt* p_prompt_ = DataTree::Instance()->findPrompt("textFieldEntry"); + + if (p_prompt_ != NULL) + { + AudioSequencePlayer::Instance()->fillSequencePrompt(mSeq, p_prompt_, NULL); + } mSeq->append(strTextFieldFULL); } //if (playNow) AudioSequencePlayer::Instance()->Play(seq); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |