[Amis-vcs] SF.net SVN: amis: [2385] branches/amis3/AmisGuiMFC2
Brought to you by:
julienq,
marisademeglio
From: <mar...@us...> - 2008-03-03 05:50:50
|
Revision: 2385 http://amis.svn.sourceforge.net/amis/?rev=2385&view=rev Author: marisademeglio Date: 2008-03-02 21:50:56 -0800 (Sun, 02 Mar 2008) Log Message: ----------- speed buttons enable/disable correctly Modified Paths: -------------- branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp branches/amis3/AmisGuiMFC2/src/gui/HtmlView.cpp branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp Modified: branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h 2008-03-03 05:25:23 UTC (rev 2384) +++ branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h 2008-03-03 05:50:56 UTC (rev 2385) @@ -112,6 +112,7 @@ void openBook(const ambulant::net::url*); void openLastReadBook(); void updateFontSizeButtons(); + void updateSpeedButtons(); std::string mAppPath; std::string mLocalizationDll; ambulant::net::url mURL; Modified: branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h 2008-03-03 05:25:23 UTC (rev 2384) +++ branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h 2008-03-03 05:50:56 UTC (rev 2385) @@ -75,6 +75,7 @@ afx_msg void OnUpdateCmdUiGeneral(CCmdUI*); afx_msg void OnUpdateCmdUiInfoSkip(CCmdUI*); afx_msg void OnUpdateCmdUiPlaySlower(CCmdUI*); + afx_msg void OnUpdateCmdUiPlayFaster(CCmdUI*); afx_msg void OnUpdateCmdUiCheckSidebar(CCmdUI*); afx_msg void OnUpdateCmdUiFindInText(CCmdUI*); afx_msg void OnUpdateCmdUiPlayPause(CCmdUI*); Modified: branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp 2008-03-03 05:25:23 UTC (rev 2384) +++ branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp 2008-03-03 05:50:56 UTC (rev 2385) @@ -540,7 +540,7 @@ double rate = ambulant::gui::dx::change_global_rate(0.5); ambulantX::gui::dx::audio_playerX::Instance()->set_rate(rate); - + updateSpeedButtons(); //amis::gui::spoken::AudioSequencePlayer::Instance()->playPromptFromUiId(ID_MENU_PLAY_FASTER, true, NULL); } @@ -554,7 +554,7 @@ //TODO: Doesn't seem to affect the playback speed at all double rate = ambulant::gui::dx::change_global_rate(-0.5); ambulantX::gui::dx::audio_playerX::Instance()->set_rate(rate); - + updateSpeedButtons(); //amis::gui::spoken::AudioSequencePlayer::Instance()->playPromptFromUiId(ID_MENU_PLAY_SLOWER, true, NULL); } @@ -566,7 +566,7 @@ ambulant::gui::dx::set_global_rate(1.0); ambulantX::gui::dx::audio_playerX::Instance()->set_rate(1.0); - + updateSpeedButtons(); //amis::gui::spoken::AudioSequencePlayer::Instance()->playPromptFromUiId(ID_MENU_PLAY_NORMALSPEED, true, NULL); } @@ -856,4 +856,29 @@ MainWndParts::Instance()->mpBasicToolbar->enable(ID_AMIS_BIGGER_FONT, can_increase); MainWndParts::Instance()->mpDefaultToolbar->enable(ID_AMIS_SMALLER_FONT, can_decrease); MainWndParts::Instance()->mpBasicToolbar->enable(ID_AMIS_SMALLER_FONT, can_decrease); +} + +void CAmisApp::updateSpeedButtons() +{ + double rate = ambulantX::gui::dx::audio_playerX::Instance()->get_rate(); + + //TODO: unhardcode the max rate + double max = 4.0; + bool can_increase = true; + bool can_decrease = true; + if (rate == 1) + { + can_decrease = false; + can_increase = true; + } + else if (rate == max) + { + can_decrease = true; + can_increase = false; + } + MainWndParts::Instance()->mpDefaultToolbar->enable(ID_AMIS_FASTER, can_increase); + MainWndParts::Instance()->mpBasicToolbar->enable(ID_AMIS_FASTER, can_increase); + MainWndParts::Instance()->mpDefaultToolbar->enable(ID_AMIS_SLOWER, can_decrease); + MainWndParts::Instance()->mpBasicToolbar->enable(ID_AMIS_SLOWER, can_decrease); + } \ No newline at end of file Modified: branches/amis3/AmisGuiMFC2/src/gui/HtmlView.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/HtmlView.cpp 2008-03-03 05:25:23 UTC (rev 2384) +++ branches/amis3/AmisGuiMFC2/src/gui/HtmlView.cpp 2008-03-03 05:50:56 UTC (rev 2385) @@ -648,10 +648,18 @@ void CAmisHtmlView::removeStylesheet(IHTMLStyleSheet* pStyleSheet) { if (!pStyleSheet) return; - amis::util::Log::Instance()->writeMessage("Removing stylesheet", "CAmisHtmlView::removeStylesheet","AmisGuiMFC2"); - pStyleSheet->put_disabled(VARIANT_TRUE); - pStyleSheet->Release(); - pStyleSheet = NULL; + //i don't know if an exception is even raised, but i've seen it crash here, though not consistently + try + { + amis::util::Log::Instance()->writeMessage("Removing stylesheet", "CAmisHtmlView::removeStylesheet","AmisGuiMFC2"); + pStyleSheet->put_disabled(VARIANT_TRUE); + pStyleSheet->Release(); + pStyleSheet = NULL; + } + catch (...) + { + return; + } } Modified: branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp 2008-03-03 05:25:23 UTC (rev 2384) +++ branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp 2008-03-03 05:50:56 UTC (rev 2385) @@ -68,7 +68,7 @@ ON_UPDATE_COMMAND_UI(ID_AMIS_PREVIOUS_PAGE, OnUpdateCmdUiPageCommands) ON_UPDATE_COMMAND_UI(ID_AMIS_GOTO_PAGE, OnUpdateCmdUiPageCommands) ON_UPDATE_COMMAND_UI(ID_AMIS_ADD_BOOKMARK, OnUpdateCmdUiGeneral) - ON_UPDATE_COMMAND_UI(ID_AMIS_FASTER, OnUpdateCmdUiGeneral) + ON_UPDATE_COMMAND_UI(ID_AMIS_FASTER, OnUpdateCmdUiPlayFaster) ON_UPDATE_COMMAND_UI(ID_AMIS_CLOSE_BOOK, OnUpdateCmdUiGeneral) ON_UPDATE_COMMAND_UI(ID_AMIS_SHOW_READING_OPTIONS, OnUpdateCmdUiInfoSkip) ON_UPDATE_COMMAND_UI(ID_AMIS_SLOWER, OnUpdateCmdUiPlaySlower) @@ -262,7 +262,7 @@ if (amis::Preferences::Instance()->getIsSelfVoicing() == true) { - mMenuVoicing->OnMenuSelect(nItemID, nFlags, hSysMenu); + mMenuVoicing->OnMenuSelect(nItemID, nFlags, hSysMenu); } } @@ -462,19 +462,32 @@ } void CMainFrame::OnUpdateCmdUiInfoSkip(CCmdUI* pCmdUi) { + //TODO: re-enable when the reading options dialog works + updateUiCommandState(pCmdUi, false); + /* if (theApp.isBookOpen() && amis::dtb::DtbWithHooks::Instance()->getCustomTestSet() != NULL && amis::dtb::DtbWithHooks::Instance()->getCustomTestSet()->getLength() > 0) updateUiCommandState(pCmdUi, true); else updateUiCommandState(pCmdUi, false); + */ } void CMainFrame::OnUpdateCmdUiPlaySlower(CCmdUI* pCmdUi) { - if (theApp.isBookOpen() && Preferences::Instance()->getIsSelfVoicing() && ambulantX::gui::dx::audio_playerX::Instance()->get_rate() > 1) + if (theApp.isBookOpen() && ambulantX::gui::dx::audio_playerX::Instance()->get_rate() > 1) updateUiCommandState(pCmdUi, true); else updateUiCommandState(pCmdUi, false); } +void CMainFrame::OnUpdateCmdUiPlayFaster(CCmdUI* pCmdUi) +{ + //TODO: unhardcode the max rate + if (theApp.isBookOpen() && ambulantX::gui::dx::audio_playerX::Instance()->get_rate() < 4.0) + updateUiCommandState(pCmdUi, true); + else + updateUiCommandState(pCmdUi, false); + +} void CMainFrame::OnUpdateCmdUiCheckSidebar(CCmdUI* pCmdUi) { if (MainWndParts::Instance()->mpSidebar->IsVisible() == TRUE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |