示例#1
0
CToolBar* CToolBar::Load(CMainFrame* pMainFrame)
{
	wxSize iconSize = CThemeProvider::GetIconSize(iconSizeSmall, true);
#ifdef __WXMAC__
	// OS X only knows two hardcoded toolbar sizes.
	if (iconSize.x >= 32) {
		iconSize = wxSize(32, 32);
	}
	else {
		iconSize = wxSize(24, 24);
	}
#endif

	CToolBar* toolbar = new CToolBar();
	toolbar->m_pMainFrame = pMainFrame;
	int style = wxTB_FLAT | wxTB_HORIZONTAL | wxTB_NODIVIDER;
#ifdef __WXMSW__
	style |= wxTB_NOICONS;
#endif
	if (!toolbar->Create(pMainFrame, XRCID("ID_TOOLBAR"), wxDefaultPosition, wxDefaultSize, style)) {
		delete toolbar;
		return 0;
	}
	toolbar->SetToolBitmapSize(iconSize);
	toolbar->MakeTools();
	
	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_REMOTE_IDLE, true);
	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_SERVER, true);
	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_SYNC_BROWSE, true);
	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_COMPARISON, true);
	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_APPLYFILTER, true);

	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_QUEUEPROCESSING, false);
	CContextManager::Get()->RegisterHandler(toolbar, STATECHANGE_CHANGEDCONTEXT, false);

	toolbar->RegisterOption(OPTION_SHOW_MESSAGELOG);
	toolbar->RegisterOption(OPTION_SHOW_QUEUE);
	toolbar->RegisterOption(OPTION_SHOW_TREE_LOCAL);
	toolbar->RegisterOption(OPTION_SHOW_TREE_REMOTE);
	toolbar->RegisterOption(OPTION_MESSAGELOG_POSITION);

	toolbar->ToggleTool(XRCID("ID_TOOLBAR_FILTER"), CFilterManager::HasActiveFilters());
	toolbar->ToggleTool(XRCID("ID_TOOLBAR_LOGVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_MESSAGELOG) != 0);
	toolbar->ToggleTool(XRCID("ID_TOOLBAR_QUEUEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_QUEUE) != 0);
	toolbar->ToggleTool(XRCID("ID_TOOLBAR_LOCALTREEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_TREE_LOCAL) != 0);
	toolbar->ToggleTool(XRCID("ID_TOOLBAR_REMOTETREEVIEW"), COptions::Get()->GetOptionVal(OPTION_SHOW_TREE_REMOTE) != 0);

	pMainFrame->SetToolBar(toolbar);
	toolbar->Realize();

	if (COptions::Get()->GetOptionVal(OPTION_MESSAGELOG_POSITION) == 2) {
		toolbar->HideTool(XRCID("ID_TOOLBAR_LOGVIEW"));
	}

	return toolbar;
}
示例#2
0
BOOL CCoolBarCtrl::LoadToolBar(UINT nIDToolBar)
{
	CToolBar pToolBar;
	
	if ( ! pToolBar.Create( this ) || ! pToolBar.LoadToolBar( nIDToolBar ) ) return FALSE;
	
	for ( int i = 0 ; i < pToolBar.GetCount(); i++ )
	{
		UINT nID, nStyle;
		int nImage;
		
		pToolBar.GetButtonInfo( i, nID, nStyle, nImage );
		
		Add( nID );
	}
	
	return TRUE;
}
示例#3
0
bool CPromFrame::CreateFileBar(CToolBar& tb, UINT resourceID, const char *title)
{
  if (!tb.Create(this) || !tb.LoadToolBar(resourceID)) {
    TRACE0("Failed to create toolbar\n");
    return false;  // fail to create
  }

  tb.SetBarStyle(tb.GetBarStyle() |
    CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

  if (title) {
    tb.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    ShowControlBar(&tb,FALSE,FALSE);
    DockControlBar(&tb);
    tb.SetWindowText(title);
  }

  return true;
}