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); }