[Amis-vcs] SF.net SVN: amis: [2346] branches/amis3
Brought to you by:
julienq,
marisademeglio
From: <mar...@us...> - 2008-02-26 23:49:11
|
Revision: 2346 http://amis.svn.sourceforge.net/amis/?rev=2346&view=rev Author: marisademeglio Date: 2008-02-26 15:49:15 -0800 (Tue, 26 Feb 2008) Log Message: ----------- Added basic view mode and basic toolbar Modified Paths: -------------- branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h branches/amis3/AmisGuiMFC2/include/gui/MainWndParts.h branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp branches/amis3/AmisGuiMFC2/src/gui/MainWndParts.cpp branches/amis3/AmisGuiMFC2/src/io/ToolbarIO.cpp Added Paths: ----------- branches/amis3/bin/settings/basicToolbar.xml branches/amis3/bin/settings/img/basicToolbar/ Modified: branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/include/gui/AmisApp.h 2008-02-26 23:49:15 UTC (rev 2346) @@ -100,6 +100,7 @@ afx_msg void OnSpeedNormal(); afx_msg void OnPreferences(); afx_msg void OnPublicationSummary(); + afx_msg void OnToggleView(); protected: HMENU m_hMDIMenu; HACCEL m_hMDIAccel; Modified: branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/include/gui/MainFrm.h 2008-02-26 23:49:15 UTC (rev 2346) @@ -46,6 +46,7 @@ virtual BOOL PreTranslateMessage(MSG* pMsg); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); virtual ~CMainFrame(); + void restoreMenu(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; @@ -57,6 +58,8 @@ amis::gui::toolbar::Toolbar mDefaultToolbar; amis::gui::toolbar::Toolbar mBasicToolbar; CReBar mDefaultRebar; + CReBar mBasicRebar; + CMenu mSavedMenu; protected: //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); Modified: branches/amis3/AmisGuiMFC2/include/gui/MainWndParts.h =================================================================== --- branches/amis3/AmisGuiMFC2/include/gui/MainWndParts.h 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/include/gui/MainWndParts.h 2008-02-26 23:49:15 UTC (rev 2346) @@ -25,8 +25,7 @@ #include "gui/MainFrm.h" #include "gui/sidebar/AmisSidebar.h" - -//#include "../AmisToolbar.h" +#include "gui/toolbar/Toolbar.h" #include "HtmlView.h" #include "MmDoc.h" #include "MmView.h" @@ -57,10 +56,10 @@ public: amis::gui::sidebar::cdxCDynamicBarT<amis::gui::sidebar::CAmisSidebar>* mpSidebar; CMainFrame* mpMainFrame; - //CAmisToolbar* mpBasicToolbar; - //CAmisToolbar* mpDefaultToolbar; - //CReBar* mpBasicRebar; - //CReBar* mpDefaultRebar; + amis::gui::toolbar::Toolbar* mpBasicToolbar; + amis::gui::toolbar::Toolbar* mpDefaultToolbar; + CReBar* mpBasicRebar; + CReBar* mpDefaultRebar; CAmisHtmlView* mpHtmlView; CStatusBar* mpStatusBar; MmDoc* mpMmDoc; Modified: branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/src/gui/AmisApp.cpp 2008-02-26 23:49:15 UTC (rev 2346) @@ -104,6 +104,7 @@ ON_COMMAND(ID_MENU_PLAY_VOLDOWN, OnVolumeDown) ON_COMMAND(ID_MENU_FILE_PREFERENCES, OnPreferences) ON_COMMAND(ID_MENU_INFO_PUBLICATION_SUMMARY, OnPublicationSummary) + ON_COMMAND(ID_MENU_VIEW_BASIC, OnToggleView) END_MESSAGE_MAP() CAmisApp::CAmisApp() @@ -190,7 +191,7 @@ m_hMDIAccel = ::LoadAccelerators(hInst, MAKEINTRESOURCE(IDR_AMISTYPE)); //why won't this work?? - //MainWndParts::Instance()->mpMainFrame->SetIcon(AfxGetApp()->LoadIcon(IDI_AMIS), TRUE); + MainWndParts::Instance()->mpMainFrame->SetIcon(AfxGetApp()->LoadIcon(IDI_AMIS), TRUE); amis::gui::MenuManip::Instance()->setupMenusNothingOpen(); amis::gui::MenuManip::Instance()->refreshRecentBooksListMenu(); @@ -747,6 +748,10 @@ summary.DoModal(); } +void CAmisApp::OnToggleView() +{ + MainWndParts::Instance()->toggleViewMode(); +} /*************************************************** * (MED) I moved these functions out of the menu handler area *****************************************************/ Modified: branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/src/gui/MainFrm.cpp 2008-02-26 23:49:15 UTC (rev 2346) @@ -75,6 +75,7 @@ { mbWasPlayingWhenLostFocus = false; m_lastOpenPopupMenu = NULL; + mSavedMenu.LoadMenu(IDR_AMISTYPE); mCommonPreTranslateMessageHandler = new PreTranslateMessageHandler(-1); } @@ -98,7 +99,17 @@ mSidebar.SetBarStyle(mSidebar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); mSidebar.EnableDocking(CBRS_ALIGN_ANY); - //create default (top) toolbar + //create the status bar + if (!mStatusBar.Create(this) + || !mStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) + { + TRACE0("Failed to create status bar\n"); + amis::util::Log::Instance()->writeError("Failed to create status bar", "CMainFrame::OnCreate", + "AmisGuiMFC2"); + return -1; + } + + //create the default toolbar CRect rect; GetWindowRect(rect); amis::util::Log::Instance()->writeMessage("Loading default toolbar", "CMainFrame::OnCreate", "AmisGuiMFC2"); @@ -116,28 +127,53 @@ "AmisGuiMFC2"); return -1; } + mDefaultToolbar.EnableToolTips(TRUE); - //create top rebar (toolbar container) - //TODO: use the right placement (top, bottom, etc) - if (mDefaultRebar.Create(this, RBS_BANDBORDERS, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | - WS_CLIPCHILDREN | CBRS_TOP, AFX_IDW_REBAR) == FALSE) + //create the default rebar (toolbar container) + DWORD align; + if (p_settings->getPlacement() == amis::gui::toolbar::TOP) align = CBRS_TOP; + else align = CBRS_BOTTOM; + if (mDefaultRebar.Create(this, 0, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + WS_CLIPCHILDREN | align, AFX_IDW_REBAR) == FALSE) { TRACE(_T("default rebar not created\n")); amis::util::Log::Instance()->writeError("Failed to create default rebar", "CMainFrame::OnCreate", "AmisGuiMFC2"); return -1; } + mDefaultRebar.AddBar(&mDefaultToolbar); - - //create the status bar - if (!mStatusBar.Create(this) - || !mStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) + + //create the basic toolbar + amis::util::Log::Instance()->writeMessage("Loading basic toolbar", "CMainFrame::OnCreate", "AmisGuiMFC2"); + toolbar_file = ambulant::net::url::from_filename("./settings/basicToolbar.xml"); + toolbar_file = toolbar_file.join_to_base(ambulant::net::url::from_filename(theApp.getAppPath())); + toolbar_reader.readFromFile(toolbar_file.get_file()); + p_settings = toolbar_reader.getToolbarSettings(); + mBasicToolbar.setSettings(p_settings); + if (!mBasicToolbar.Create(WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, + rect, this, mSidebar.GetDlgCtrlID() + 2)) { - TRACE0("Failed to create status bar\n"); - amis::util::Log::Instance()->writeError("Failed to create status bar", "CMainFrame::OnCreate", + TRACE(_T("failed to create default toolbar\n")); + amis::util::Log::Instance()->writeError("Failed to create basic toolbar", "CMainFrame::OnCreate", "AmisGuiMFC2"); return -1; } + mBasicToolbar.EnableToolTips(TRUE); + + //create the basic rebar (toolbar container) + if (p_settings->getPlacement() == amis::gui::toolbar::TOP) align = CBRS_TOP; + else align = CBRS_BOTTOM; + if (mBasicRebar.Create(this, RBS_BANDBORDERS, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | + WS_CLIPCHILDREN | align, AFX_IDW_REBAR) == FALSE) + { + TRACE(_T("basic rebar not created\n")); + amis::util::Log::Instance()->writeError("Failed to create basic rebar", "CMainFrame::OnCreate", + "AmisGuiMFC2"); + return -1; + } + mBasicRebar.AddBar(&mBasicToolbar); + mBasicRebar.ShowWindow(SW_HIDE); // Delete these three lines if you don't want the toolbar to be dockable EnableDocking(CBRS_ALIGN_ANY); @@ -150,7 +186,10 @@ MainWndParts::Instance()->mpSidebar = &mSidebar; MainWndParts::Instance()->mpStatusBar = &mStatusBar; MainWndParts::Instance()->mpMainFrame = this; - + MainWndParts::Instance()->mpDefaultToolbar = &mDefaultToolbar; + MainWndParts::Instance()->mpBasicToolbar = &mBasicToolbar; + MainWndParts::Instance()->mpBasicRebar = &mBasicRebar; + MainWndParts::Instance()->mpDefaultRebar = &mDefaultRebar; return 0; } @@ -164,6 +203,11 @@ return TRUE; } +//reload the original menu +void CMainFrame::restoreMenu() +{ + this->SetMenu(&mSavedMenu); +} #ifdef _DEBUG void CMainFrame::AssertValid() const Modified: branches/amis3/AmisGuiMFC2/src/gui/MainWndParts.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/gui/MainWndParts.cpp 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/src/gui/MainWndParts.cpp 2008-02-26 23:49:15 UTC (rev 2346) @@ -41,10 +41,10 @@ { mpSidebar = NULL; mpMainFrame = NULL; - //mpBasicToolbar = NULL; - //mpDefaultToolbar = NULL; - //mpBasicRebar = NULL; - //mpDefaultRebar = NULL; + mpBasicToolbar = NULL; + mpDefaultToolbar = NULL; + mpBasicRebar = NULL; + mpDefaultRebar = NULL; mpHtmlView = NULL; mpStatusBar = NULL; mpMmDoc = NULL; @@ -60,9 +60,7 @@ void MainWndParts::toggleViewMode() { - //go to basic view mode - if (mbBasicView == false) this->basicView(); - //go to default view mode + if (mbBasicView == false) basicView(); else defaultView(); } @@ -82,79 +80,50 @@ void MainWndParts::basicView() { - /* - if (this->mbSidebarVisible == true) - { - toggleSidebar(); - } + if (this->mbSidebarVisible == true) toggleSidebar(); - //check the basic view menu - CMenu* p_menu = NULL; - p_menu = mpMainFrame->GetMenu(); - p_menu->CheckMenuItem(ID_MENU_VIEW_BASIC, MF_CHECKED); - + /* TODO: re-add this //change the window title text to say "basic view mode" mMainWindowTitle = this->mpMainFrame->GetTitle(); - CString new_title = mMainWindowTitle + _T(": basic view"); this->mpMainFrame->SetTitle(new_title); + */ mpMainFrame->ShowControlBar(mpStatusBar, FALSE, TRUE); - mpMainFrame->ShowControlBar(mpDefaultRebar, FALSE, TRUE); - mpMainFrame->ShowControlBar(mpBasicRebar, TRUE, TRUE); - mpMainFrame->SetMenu(NULL); - mpMainFrame->RecalcLayout(); - - mbBasicView = true; - -*/ - + mbBasicView = true; } void MainWndParts::defaultView() { - /* CMenu* p_menu = NULL; + + //TODO: Set the title again + //this->mpMainFrame->SetTitle(mMainWindowTitle); - this->mpMainFrame->SetTitle(mMainWindowTitle); - mpMainFrame->restoreMenu(); - + /* TODO: re-add menu settings code if (AmisBrain::Instance()->doesMenuNeedUpdate() == true) { AmisBrain::Instance()->updateMenus(); AmisBrain::Instance()->flagMenusForUpdate(false); - } + }*/ - - //uncheck the basic view menu - p_menu = mpMainFrame->GetMenu(); - p_menu->CheckMenuItem(ID_MENU_VIEW_BASIC, MF_UNCHECKED); - mpMainFrame->ShowControlBar(mpStatusBar, TRUE, TRUE); - mpMainFrame->ShowControlBar(mpDefaultRebar, TRUE, TRUE); - mpMainFrame->ShowControlBar(mpBasicRebar, FALSE, TRUE); - mpMainFrame->RecalcLayout(); - mbBasicView = false; - - if (this->mbSidebarVisible == false) - { - toggleSidebar(); - } - */ + //TODO: make this smarter: only turn the sidebar on if it had been on before + if (this->mbSidebarVisible == false) toggleSidebar(); } bool MainWndParts::isBasicView() { - return this->mbBasicView; + return mbBasicView; } @@ -173,9 +142,11 @@ updateTitleBar(TITLEBAR_PLAYSTATE, (playing ? L"Playing..." : L"Paused.")); } -void MainWndParts::updateTitleBar(TitleBarFieldID field, CString str) { +void MainWndParts::updateTitleBar(TitleBarFieldID field, CString str) +{ CString title; - switch (field) { + switch (field) + { case TITLEBAR_APPNAME: { mStrTITLEBAR_APPNAME = str; break; Modified: branches/amis3/AmisGuiMFC2/src/io/ToolbarIO.cpp =================================================================== --- branches/amis3/AmisGuiMFC2/src/io/ToolbarIO.cpp 2008-02-26 22:44:16 UTC (rev 2345) +++ branches/amis3/AmisGuiMFC2/src/io/ToolbarIO.cpp 2008-02-26 23:49:15 UTC (rev 2346) @@ -63,6 +63,8 @@ { mbFlagInToggle = false; mpCurrentToggle = NULL; + mItems.clear(); + mpToolbarSettings = NULL; ambulant::net::url tmp_url = ambulant::net::url::from_filename(filepath); bool ret = parseFile(&tmp_url); return ret; Added: branches/amis3/bin/settings/basicToolbar.xml =================================================================== --- branches/amis3/bin/settings/basicToolbar.xml (rev 0) +++ branches/amis3/bin/settings/basicToolbar.xml 2008-02-26 23:49:15 UTC (rev 2346) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<toolbar xmlns="http://amisproject.org" view="basic" placement="bottom" buttonHeight="72" buttonWidth="72"> + <button src="./img/basicToolbar/media_seek_backward.ico" mfcid="ID_MENU_NAV_PREVPHRASE"/> + <toggle> + <button src="./img/basicToolbar/media_playback_start.ico" mfcid="ID_MENU_PLAY_PLAY"/> + <button src="./img/basicToolbar/media_playback_pause.ico" mfcid="ID_MENU_PLAY_PAUSE"/> + </toggle> + <button src="./img/basicToolbar/media_seek_forward.ico" mfcid="ID_MENU_NAV_NEXTPHRASE"/> + <separator/> + <button src="./img/basicToolbar/style.ico" mfcid="ID_MENU_PLAY_SLOWER"/> + <separator/> + <button src="./img/basicToolbar/display.ico" mfcid="ID_MENU_VIEW_BASIC"/> +</toolbar> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |