void TMediaTabView::MessageReceived(BMessage* message) { // Check for messages to switch the view bool buttonMsg = false; EChildID newView; switch (message->what) { case MEDIA_TAB_LIST_VIEW_MSG: newView = kElementsView; buttonMsg = true; break; case MEDIA_TAB_THUMBNAIL_VIEW_MSG: newView = kThumbnailView; buttonMsg = true; break; case MEDIA_TAB_ICON_VIEW_MSG: newView = kIconView; buttonMsg = true; break; } if (buttonMsg) { if (newView != fCurrentView) { // Protect this section of code. Looper()->Lock(); DeactivateView(fCurrentView); fCurrentView = newView; ActivateView(fCurrentView); Looper()->Unlock(); } return; } // Accept messages from the sorter object switch (message->what) { case SORTER_SELECT_MSG: case SORTER_INVOKE_MSG: if (fCurrentView == kElementsView) ChildAt(fCurrentView)->MessageReceived(message); return; // Some cue is adding an entry_ref to our browser // TODO: include the other two views in this. They can // have a new REF as well. case ADD_REF_MSG: if (fCurrentView == kElementsView) ChildAt(fCurrentView)->MessageReceived(message); return; } // Default handler BView::MessageReceived(message); }
void CModelViewRender::OnDestroy() { StopSequence(); // delete scene root DeleteEEObject(&m_hszSceneName); DeactivateView(); CView::OnDestroy(); }
void CModelViewRender::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { CView::OnActivateView(bActivate, pActivateView, pDeactiveView); CGuiMDIFrame *mainWnd = DYNAMIC_DOWNCAST(CGuiMDIFrame, AfxGetMainWnd()); if (bActivate) { if (!m_bActivated) { SetActiveScene(); ActivateView(); mainWnd->LoadDocumentBars(_T("ModelView")); m_bActivated = true; } } else if (m_bActivated) { DeactivateView(); mainWnd->SaveDocumentBars(_T("ModelView")); m_bActivated = false; } }