void CToolBar::UpdateToolbarState() { CState* pState = CContextManager::Get()->GetCurrentContext(); if (!pState) return; const CServer* pServer = pState->GetServer(); const bool idle = pState->IsRemoteIdle(); EnableTool(XRCID("ID_TOOLBAR_DISCONNECT"), pServer && idle); EnableTool(XRCID("ID_TOOLBAR_CANCEL"), pServer && !idle); EnableTool(XRCID("ID_TOOLBAR_COMPARISON"), pServer != 0); EnableTool(XRCID("ID_TOOLBAR_SYNCHRONIZED_BROWSING"), pServer != 0); EnableTool(XRCID("ID_TOOLBAR_FIND"), pServer && idle); ToggleTool(XRCID("ID_TOOLBAR_COMPARISON"), pState->GetComparisonManager()->IsComparing()); ToggleTool(XRCID("ID_TOOLBAR_SYNCHRONIZED_BROWSING"), pState->GetSyncBrowse()); bool canReconnect; if (pServer || !idle) canReconnect = false; else { CServer tmp; canReconnect = !pState->GetLastServer().GetHost().empty(); } EnableTool(XRCID("ID_TOOLBAR_RECONNECT"), canReconnect); }
void CToolBar::OnStateChange(CState* pState, enum t_statechange_notifications notification, const wxString&, const void*) { switch (notification) { case STATECHANGE_CHANGEDCONTEXT: case STATECHANGE_SERVER: case STATECHANGE_REMOTE_IDLE: UpdateToolbarState(); break; case STATECHANGE_QUEUEPROCESSING: { const bool check = m_pMainFrame->GetQueue() && m_pMainFrame->GetQueue()->IsActive() != 0; ToggleTool(XRCID("ID_TOOLBAR_PROCESSQUEUE"), check); } break; case STATECHANGE_SYNC_BROWSE: { bool is_sync_browse = pState && pState->GetSyncBrowse(); ToggleTool(XRCID("ID_TOOLBAR_SYNCHRONIZED_BROWSING"), is_sync_browse); } break; case STATECHANGE_COMPARISON: { bool is_comparing = pState && pState->GetComparisonManager()->IsComparing(); ToggleTool(XRCID("ID_TOOLBAR_COMPARISON"), is_comparing); } break; case STATECHANGE_APPLYFILTER: ToggleTool(XRCID("ID_TOOLBAR_FILTER"), CFilterManager::HasActiveFilters()); break; default: break; } }
void CToolBar::OnOptionChanged(int option) { switch (option) { case OPTION_SHOW_MESSAGELOG: ToggleTool(XRCID("ID_TOOLBAR_LOGVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_MESSAGELOG) != 0); break; case OPTION_SHOW_QUEUE: ToggleTool(XRCID("ID_TOOLBAR_QUEUEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_QUEUE) != 0); break; case OPTION_SHOW_TREE_LOCAL: ToggleTool(XRCID("ID_TOOLBAR_LOCALTREEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_TREE_LOCAL) != 0); break; case OPTION_SHOW_TREE_REMOTE: ToggleTool(XRCID("ID_TOOLBAR_REMOTETREEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_TREE_REMOTE) != 0); break; case OPTION_MESSAGELOG_POSITION: if (COptions::Get()->GetOptionVal(OPTION_MESSAGELOG_POSITION) == 2) HideTool(XRCID("ID_TOOLBAR_LOGVIEW")); else { ShowTool(XRCID("ID_TOOLBAR_LOGVIEW")); ToggleTool(XRCID("ID_TOOLBAR_LOGVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_MESSAGELOG) != 0); } break; default: break; } }
//------------------------------------------------------------------------------ // void ResetMissionTreeExcludeCategory() //------------------------------------------------------------------------------ void MissionTreeToolBar::ResetMissionTreeExcludeCategory() { ToggleTool(TOOL_EXC_REPORT, false); ToggleTool(TOOL_EXC_EQUATION, false); ToggleTool(TOOL_EXC_PLOT, false); ToggleTool(TOOL_EXC_CALL, false); mLastExcCategoryClicked = -1; }
//------------------------------------------------------------------------------ // void ResetMissionTreeIncludeCategory() //------------------------------------------------------------------------------ void MissionTreeToolBar::ResetMissionTreeIncludeCategory() { ToggleTool(TOOL_INC_PHYSICS, false); ToggleTool(TOOL_INC_SOLVER, false); ToggleTool(TOOL_INC_SCRIPT, false); ToggleTool(TOOL_INC_CONTROL, false); mLastIncCategoryClicked = -1; }
//------------------------------------------------------------------------------ // void ResetMissionTreeLevel() //------------------------------------------------------------------------------ void MissionTreeToolBar::ResetMissionTreeLevel() { ToggleTool(TOOL_LEVEL_ALL, false); ToggleTool(TOOL_LEVEL_1, false); ToggleTool(TOOL_LEVEL_2, false); ToggleTool(TOOL_LEVEL_3, false); mLastLevelClicked = -1; }
//------------------------------------------------------------------------------ // void SetMissionTreeExpandLevel(int level) //------------------------------------------------------------------------------ void MissionTreeToolBar::SetMissionTreeExpandLevel(int level) { ResetMissionTreeTools(); if (level == 1) ToggleTool(TOOL_LEVEL_1, true); else if (level == 2) ToggleTool(TOOL_LEVEL_2, true); else if (level == 3) ToggleTool(TOOL_LEVEL_3, true); //else // ToggleTool(TOOL_LEVEL_ALL, true); }
//------------------------------------------------------------------------------ // void ResetMissionTreeTools() //------------------------------------------------------------------------------ void MissionTreeToolBar::ResetMissionTreeTools() { ResetMissionTreeLevel(); ResetMissionTreeIncludeCategory(); ResetMissionTreeExcludeCategory(); ToggleTool(TOOL_CLEAR_FILTERS, true); }
void wxRibbonToolBar::UpdateWindowUI(long flags) { wxWindowBase::UpdateWindowUI(flags); // don't waste time updating state of tools in a hidden toolbar if ( !IsShown() ) return; size_t group_count = m_groups.GetCount(); size_t g, t; for(g = 0; g < group_count; ++g) { wxRibbonToolBarToolGroup* group = m_groups.Item(g); size_t tool_count = group->tools.GetCount(); for(t = 0; t < tool_count; ++t) { wxRibbonToolBarToolBase* tool = group->tools.Item(t); int id = tool->id; wxUpdateUIEvent event(id); event.SetEventObject(this); if ( ProcessWindowEvent(event) ) { if ( event.GetSetEnabled() ) EnableTool(id, event.GetEnabled()); if ( event.GetSetChecked() ) ToggleTool(id, event.GetChecked()); } } } }
void CToolBar::OnOptionsChanged(changed_options_t const& options) { if (options.test(OPTION_SHOW_MESSAGELOG)) { ToggleTool(XRCID("ID_TOOLBAR_LOGVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_MESSAGELOG) != 0); } if (options.test(OPTION_SHOW_QUEUE)) { ToggleTool(XRCID("ID_TOOLBAR_QUEUEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_QUEUE) != 0); } if (options.test(OPTION_SHOW_TREE_LOCAL)) { ToggleTool(XRCID("ID_TOOLBAR_LOCALTREEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_TREE_LOCAL) != 0); } if (options.test(OPTION_SHOW_TREE_REMOTE)) { ToggleTool(XRCID("ID_TOOLBAR_REMOTETREEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_TREE_REMOTE) != 0); } if (options.test(OPTION_MESSAGELOG_POSITION)) { if (COptions::Get()->GetOptionVal(OPTION_MESSAGELOG_POSITION) == 2) HideTool(XRCID("ID_TOOLBAR_LOGVIEW")); else { ShowTool(XRCID("ID_TOOLBAR_LOGVIEW")); ToggleTool(XRCID("ID_TOOLBAR_LOGVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_MESSAGELOG) != 0); } } }
bool EditorToolPalette::OnLeftClick(int toolIndex, bool toggled) { // BEGIN mutual exclusivity code if (toggled && (currentlySelected != wxNOT_FOUND) && (toolIndex != currentlySelected)) ToggleTool(currentlySelected, false); if (toggled) currentlySelected = toolIndex; else if (currentlySelected == toolIndex) currentlySelected = wxNOT_FOUND; // END mutual exclusivity code return true; }
//------------------------------------------------------------------------------ // void OnViewByLevel(wxCommandEvent& event) //------------------------------------------------------------------------------ void MissionTreeToolBar::OnViewByLevel(wxCommandEvent& event) { int eventId = event.GetId(); mLastLevelClicked = eventId; int viewLevel = 0; switch (eventId) { case TOOL_LEVEL_ALL: viewLevel = 10; break; case TOOL_LEVEL_1: viewLevel = 1; break; case TOOL_LEVEL_2: viewLevel = 2; break; case TOOL_LEVEL_3: viewLevel = 3; break; default: break; } // GMT-2924 changed behavior so all level buttons do not stay pressed // TGG: 2012-07-31 ToggleTool(TOOL_CLEAR_FILTERS, true); ToggleTool(TOOL_LEVEL_ALL, false); ToggleTool(TOOL_LEVEL_1, false); ToggleTool(TOOL_LEVEL_2, false); ToggleTool(TOOL_LEVEL_3, false); ResetMissionTreeIncludeCategory(); ResetMissionTreeExcludeCategory(); mMissionTree->SetViewLevel(viewLevel); }
// Do the toolbar button updates (check for EVT_UPDATE_UI handlers) void wxToolBarBase::UpdateWindowUI(long flags) { wxWindowBase::UpdateWindowUI(flags); // don't waste time updating state of tools in a hidden toolbar if ( !IsShown() ) return; wxEvtHandler* evtHandler = GetEventHandler() ; #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ for ( wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst(); node; node = node->GetNext() ) { wxToolBarToolBase * const tool = node->GetData(); if ( tool->IsSeparator() ) continue; int toolid = tool->GetId(); wxUpdateUIEvent event(toolid); event.SetEventObject(this); if ( evtHandler->ProcessEvent(event) ) { if ( event.GetSetEnabled() ) EnableTool(toolid, event.GetEnabled()); if ( event.GetSetChecked() ) ToggleTool(toolid, event.GetChecked()); #if 0 if ( event.GetSetText() ) // Set tooltip? #endif // 0 } } }
// Do the toolbar button updates (check for EVT_UPDATE_UI handlers) void wxToolBarBase::UpdateWindowUI(long flags) { wxWindowBase::UpdateWindowUI(flags); // don't waste time updating state of tools in a hidden toolbar if ( !IsShown() ) return; // There is no sense in updating the toolbar UI // if the parent window is about to get destroyed wxWindow *tlw = wxGetTopLevelParent( this ); if (tlw && wxPendingDelete.Member( tlw )) return; wxEvtHandler* evtHandler = GetEventHandler() ; for ( wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst(); node; node = node->GetNext() ) { wxToolBarToolBase * const tool = node->GetData(); if ( tool->IsSeparator() ) continue; int id = tool->GetId(); wxUpdateUIEvent event(id); event.SetEventObject(this); if ( evtHandler->ProcessEvent(event) ) { if ( event.GetSetEnabled() ) EnableTool(id, event.GetEnabled()); if ( event.GetSetChecked() ) ToggleTool(id, event.GetChecked()); #if 0 if ( event.GetSetText() ) // Set tooltip? #endif // 0 } } }
// Do the toolbar button updates (check for EVT_UPDATE_UI handlers) void wxToolBarBase::UpdateWindowUI(long flags) { wxWindowBase::UpdateWindowUI(flags); // don't waste time updating state of tools in a hidden toolbar if ( !IsShown() ) return; wxEvtHandler* evtHandler = GetEventHandler() ; for ( wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst(); node; node = node->GetNext() ) { wxToolBarToolBase * const tool = node->GetData(); if ( tool->IsSeparator() ) continue; int toolid = tool->GetId(); wxUpdateUIEvent event(toolid); event.SetEventObject(this); if ( evtHandler->ProcessEvent(event) ) { if ( event.GetSetEnabled() ) EnableTool(toolid, event.GetEnabled()); if ( event.GetSetChecked() ) ToggleTool(toolid, event.GetChecked()); #if 0 if ( event.GetSetText() ) // Set tooltip? #endif // 0 } } }
//------------------------------------------------------------------------------ void MissionTreeToolBar::OnViewByCategory(wxCommandEvent& event) { wxArrayString cmdsToInclude; ToggleTool(TOOL_LEVEL_ALL, false); ToggleTool(TOOL_LEVEL_1, false); ToggleTool(TOOL_LEVEL_2, false); ToggleTool(TOOL_LEVEL_3, false); // Expand Level, Include category and Exclude category are mutually exclusive. // So for example, if an include button is clicked and then an exclude // button is clicked it will toggle off the includ button. int eventId = event.GetId(); #ifdef DEBUG_MISSION_VIEW_CONTROL MessageInterface::ShowMessage ("MissionTreeToolBar::OnViewByCategory() entered, eventId = %d, mLastIncCategoryClicked = %d, " "mLastExcCategoryClicked = %d\n", eventId, mLastIncCategoryClicked, mLastExcCategoryClicked); #endif switch (eventId) { case TOOL_CLEAR_FILTERS: // Stay toggled on if the last one reclicked if (eventId == mLastIncCategoryClicked) { ToggleTool(eventId, true); return; } ClearFilters(); break; case TOOL_INC_PHYSICS: case TOOL_INC_SOLVER: case TOOL_INC_SCRIPT: case TOOL_INC_CONTROL: // Stay toggled on if the last one reclicked // Actually it should be toggled off and remove all filters which shows // all levels (LOJ: 2012.12.10) if (eventId == mLastIncCategoryClicked) { //ToggleTool(eventId, true); ToggleTool(eventId, false); ClearFilters(); return; } ResetMissionTreeExcludeCategory(); ToggleTool(TOOL_CLEAR_FILTERS, false); // Include Physics based if (GetToolState(TOOL_INC_PHYSICS)) { cmdsToInclude.Add("Propagate"); cmdsToInclude.Add("Maneuver"); cmdsToInclude.Add("BeginFiniteBurn"); cmdsToInclude.Add("EndFiniteBurn"); } // Include Solver related if (GetToolState(TOOL_INC_SOLVER)) { cmdsToInclude.Add("Target"); cmdsToInclude.Add("Optimize"); cmdsToInclude.Add("Vary"); cmdsToInclude.Add("Achieve"); cmdsToInclude.Add("NonlinearConstraint"); cmdsToInclude.Add("Minimize"); } // Include ScriptEvent if (GetToolState(TOOL_INC_SCRIPT)) { cmdsToInclude.Add("BeginScript"); } // Include ControlFlow if (GetToolState(TOOL_INC_CONTROL)) { cmdsToInclude.Add("If"); cmdsToInclude.Add("While"); cmdsToInclude.Add("For"); } mLastIncCategoryClicked = GetOnlyOneClicked(1); mMissionTree->SetViewCommands(cmdsToInclude); break; case TOOL_EXC_REPORT: case TOOL_EXC_EQUATION: case TOOL_EXC_PLOT: case TOOL_EXC_CALL: // Stay toggled on if the same one reclicked // Actually it should be toggled off and remove all filters which shows // all levels (LOJ: 2012.12.10) if (eventId == mLastExcCategoryClicked) { //ToggleTool(eventId, true); ToggleTool(eventId, false); ClearFilters(); return; } ResetMissionTreeIncludeCategory(); ToggleTool(TOOL_CLEAR_FILTERS, false); cmdsToInclude = mMissionTree->GetCommandList(true); #ifdef DEBUG_MISSION_VIEW_CONTROL MessageInterface::ShowMessage ("Before exclusion: cmdsToInclude has %d commands\n", cmdsToInclude.GetCount()); for (unsigned int i = 0; i < cmdsToInclude.size(); i++) MessageInterface::ShowMessage(" '%s'\n", cmdsToInclude[i].c_str()); #endif // Exclude Report if (GetToolState(TOOL_EXC_REPORT)) cmdsToInclude.Remove("Report"); // Exclude Equation if (GetToolState(TOOL_EXC_EQUATION)) cmdsToInclude.Remove("GMAT"); // Exclude Subscriber related if (GetToolState(TOOL_EXC_PLOT)) { cmdsToInclude.Remove("ClearPlot"); cmdsToInclude.Remove("MarkPoint"); cmdsToInclude.Remove("PenUp"); cmdsToInclude.Remove("PenDown"); cmdsToInclude.Remove("Toggle"); } // Exclude CallGMATFunction, CallMatlabFunction, Save, SaveMission if (GetToolState(TOOL_EXC_CALL)) { cmdsToInclude.Remove("CallGmatFunction"); cmdsToInclude.Remove("CallMatlabFunction"); cmdsToInclude.Remove("Save"); cmdsToInclude.Remove("SaveMission"); } mLastExcCategoryClicked = GetOnlyOneClicked(2); #ifdef DEBUG_MISSION_VIEW_CONTROL MessageInterface::ShowMessage (" After exclusion: cmdsToInclude has %d commands\n", cmdsToInclude.GetCount()); for (unsigned int i = 0; i < cmdsToInclude.size(); i++) MessageInterface::ShowMessage(" '%s'\n", cmdsToInclude[i].c_str()); MessageInterface::ShowMessage("==> Calling mMissionTree->SetViewCommands()\n"); #endif mMissionTree->SetViewCommands(cmdsToInclude); break; default: break; } #ifdef DEBUG_MISSION_VIEW_CONTROL MessageInterface::ShowMessage ("MissionTreeToolBar::OnViewByCategory() leaving\n"); #endif }
void ToolBar::updateToolBar( MainFrame *mf ) { ToggleTool( m_toggleShowAxial->GetId(), SceneManager::getInstance()->isAxialDisplayed() ); ToggleTool( m_toggleShowCoronal->GetId(), SceneManager::getInstance()->isCoronalDisplayed() ); ToggleTool( m_toggleShowSagittal->GetId(), SceneManager::getInstance()->isSagittalDisplayed() ); ToggleTool( m_toggleAlphaBlending->GetId(), SceneManager::getInstance()->isAlphaBlend() ); ToggleTool( m_toggleLighting->GetId(), SceneManager::getInstance()->isLightingActive() ); ToggleTool( m_toggleShowAllSelectionObjects->GetId(), SceneManager::getInstance()->getShowAllSelObj() ); ToggleTool( m_toggleActivateAllSelectionObjects->GetId(), !SceneManager::getInstance()->getActivateAllSelObj() ); bool isFiberSelected = false; bool isFiberUsingFakeTubes = false; bool isFiberInverted = false; if (mf->m_pCurrentSceneObject != NULL && mf->m_currentListIndex != -1) { DatasetInfo* pDatasetInfo = ((DatasetInfo*)mf->m_pCurrentSceneObject); if( pDatasetInfo->getType() == FIBERS || pDatasetInfo->getType() == FIBERSGROUP ) { isFiberSelected = true; Fibers* pFibers = (Fibers*)pDatasetInfo; if( pFibers ) { isFiberUsingFakeTubes = pFibers->isUsingFakeTubes(); isFiberInverted = pFibers->isFibersInverted(); } } } ToggleTool( m_toggleFakeTubes->GetId(), isFiberSelected && isFiberUsingFakeTubes); ToggleTool( m_toggleInverseSelection->GetId(), isFiberSelected && isFiberInverted); ToggleTool( m_toggleClearToBlack->GetId(), SceneManager::getInstance()->getClearToBlack() ); ToggleTool( m_selectNormalPointer->GetId(), SceneManager::getInstance()->isRulerActive() && mf->isDrawerToolActive() ); ToggleTool( m_selectRuler->GetId(), SceneManager::getInstance()->isRulerActive() ); ToggleTool( m_selectDrawer->GetId(), mf->isDrawerToolActive() ); //SetToolNormalBitmap(m_selectColorPicker->GetId(), wxBitmap(mf->m_pDatasetHelper->m_drawColorIcon)); ToggleTool( m_toggleDrawRound->GetId(), mf->canDrawRound() ); ToggleTool( m_toggleDraw3d->GetId(), mf->canDraw3D() ); ToggleTool( m_selectPen->GetId(), DRAWMODE_PEN == mf->getDrawMode() ); ToggleTool( m_selectEraser->GetId(), DRAWMODE_ERASER == mf->getDrawMode() ); // Check if the currently selected anatomy can use the Color Picker. EnableTool( m_selectColorPicker->GetId(), DRAWMODE_PEN == mf->getDrawMode() && mf->canUseColorPicker() ); }
void DrawToolBar::DoubleCursorToolCheck() { ToggleTool(drawTB_SPLTCRS, true); }
void DrawToolBar::DoubleCursorToolUncheck() { ToggleTool(drawTB_SPLTCRS, false); }