Exemple #1
0
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;
    }
}