void OutputPane::CreateGUIControls() { wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); SetSizer(mainSizer); SetMinClientSize(wxSize(-1, 250)); long style = (kNotebook_Default | kNotebook_AllowDnD); if(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection() == wxBOTTOM) { style |= kNotebook_BottomTabs; } else if(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection() == wxLEFT) { #ifdef __WXOSX__ style &= ~(kNotebook_BottomTabs | kNotebook_LeftTabs | kNotebook_RightTabs); #else style |= kNotebook_LeftTabs; #endif } else if(EditorConfigST::Get()->GetOptions()->GetWorkspaceTabsDirection() == wxRIGHT) { #ifdef __WXOSX__ style |= kNotebook_BottomTabs; #else style |= kNotebook_RightTabs; #endif } //style |= kNotebook_UnderlineActiveTab; m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); BitmapLoader* bmpLoader = PluginManager::Get()->GetStdIcons(); // Calculate the widest tab (the one with the 'Workspace' label) TODO: What happens with translations? int xx, yy; wxFont fnt = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); wxWindow::GetTextExtent(wxGetTranslation(REPLACE_IN_FILES), &xx, &yy, NULL, NULL, &fnt); mainSizer->Add(m_book, 1, wxEXPAND | wxALL | wxGROW, 0); // the IManager instance IManager* mgr = PluginManager::Get(); // Build tab m_buildWin = new NewBuildTab(m_book); m_book->AddPage(m_buildWin, wxGetTranslation(BUILD_WIN), true, bmpLoader->LoadBitmap(wxT("build"))); m_tabs.insert(std::make_pair(wxGetTranslation(BUILD_WIN), Tab(wxGetTranslation(BUILD_WIN), m_buildWin, bmpLoader->LoadBitmap(wxT("build"))))); mgr->AddOutputTab(wxGetTranslation(BUILD_WIN)); // Find in files m_findResultsTab = new FindResultsTab(m_book, wxID_ANY, wxGetTranslation(FIND_IN_FILES_WIN)); m_book->AddPage(m_findResultsTab, wxGetTranslation(FIND_IN_FILES_WIN), false, bmpLoader->LoadBitmap(wxT("find"))); m_tabs.insert( std::make_pair(wxGetTranslation(FIND_IN_FILES_WIN), Tab(wxGetTranslation(FIND_IN_FILES_WIN), m_findResultsTab, bmpLoader->LoadBitmap(wxT("find"))))); mgr->AddOutputTab(wxGetTranslation(FIND_IN_FILES_WIN)); // Replace In Files m_replaceResultsTab = new ReplaceInFilesPanel(m_book, wxID_ANY, wxGetTranslation(REPLACE_IN_FILES)); m_book->AddPage( m_replaceResultsTab, wxGetTranslation(REPLACE_IN_FILES), false, bmpLoader->LoadBitmap(wxT("find_and_replace"))); m_tabs.insert(std::make_pair( REPLACE_IN_FILES, Tab(REPLACE_IN_FILES, m_replaceResultsTab, bmpLoader->LoadBitmap(wxT("find_and_replace"))))); mgr->AddOutputTab(REPLACE_IN_FILES); // Show Usage ("References") m_showUsageTab = new FindUsageTab(m_book, wxGetTranslation(SHOW_USAGE)); m_book->AddPage(m_showUsageTab, wxGetTranslation(SHOW_USAGE), false, bmpLoader->LoadBitmap(wxT("find"))); m_tabs.insert( std::make_pair(wxGetTranslation(SHOW_USAGE), Tab(wxGetTranslation(SHOW_USAGE), m_showUsageTab, bmpLoader->LoadBitmap(wxT("find"))))); mgr->AddOutputTab(wxGetTranslation(SHOW_USAGE)); // Output tab m_outputWind = new OutputTab(m_book, wxID_ANY, wxGetTranslation(OUTPUT_WIN)); m_book->AddPage(m_outputWind, wxGetTranslation(OUTPUT_WIN), false, bmpLoader->LoadBitmap(wxT("console"))); m_tabs.insert( std::make_pair(wxGetTranslation(OUTPUT_WIN), Tab(wxGetTranslation(OUTPUT_WIN), m_outputWind, bmpLoader->LoadBitmap(wxT("console"))))); mgr->AddOutputTab(wxGetTranslation(OUTPUT_WIN)); #if HAS_LIBCLANG // Clang tab NewProjImgList images; m_clangOutputTab = new ClangOutputTab(m_book); m_book->AddPage(m_clangOutputTab, wxGetTranslation(CLANG_TAB), false, images.Bitmap("clang16")); m_tabs.insert(std::make_pair(wxGetTranslation(CLANG_TAB), Tab(wxGetTranslation(CLANG_TAB), m_clangOutputTab, images.Bitmap("clang16")))); mgr->AddOutputTab(wxGetTranslation(CLANG_TAB)); #endif wxTextCtrl* text = new wxTextCtrl(m_book, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_RICH2 | wxTE_MULTILINE | wxTE_READONLY | wxHSCROLL); ///////////////////////////////////// // Set the trace's font & colors ///////////////////////////////////// m_book->AddPage(text, wxGetTranslation(TRACE_TAB), false, bmpLoader->LoadBitmap("log")); m_logTargetOld = wxLog::SetActiveTarget(new wxclTextCtrl(text)); m_tabs.insert(std::make_pair(wxGetTranslation(TRACE_TAB), Tab(wxGetTranslation(TRACE_TAB), text, bmpLoader->LoadBitmap("log")))); mgr->AddOutputTab(wxGetTranslation(TRACE_TAB)); // Now that we set up our own log target, re-enable the logging wxLog::EnableLogging(true); // Tasks panel m_taskPanel = new TaskPanel(m_book, wxID_ANY, wxGetTranslation(TASKS)); m_book->AddPage(m_taskPanel, wxGetTranslation(TASKS), false, bmpLoader->LoadBitmap("tasks")); m_tabs.insert(std::make_pair(wxGetTranslation(TASKS), Tab(wxGetTranslation(TASKS), m_taskPanel, bmpLoader->LoadBitmap("tasks")))); mgr->AddOutputTab(wxGetTranslation(TASKS)); SetMinSize(wxSize(200, 100)); mainSizer->Layout(); }
void OutputPane::CreateGUIControls() { wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); SetSizer(mainSizer); SetMinClientSize(wxSize(-1, 250)); #if USE_AUI_NOTEBOOK long style = wxAUI_NB_TOP | wxAUI_NB_TAB_MOVE | wxAUI_NB_WINDOWLIST_BUTTON | wxAUI_NB_TAB_SPLIT; m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); m_book->SetTabDirection(EditorConfigST::Get()->GetOptions()->GetOutputTabsDirection()); #else long style = (kNotebook_Default | kNotebook_AllowDnD); if(EditorConfigST::Get()->GetOptions()->GetOutputTabsDirection() == wxBOTTOM) { style |= kNotebook_BottomTabs; } else if(EditorConfigST::Get()->GetOptions()->GetOutputTabsDirection() == wxLEFT) { #ifdef __WXOSX__ style &= ~(kNotebook_BottomTabs | kNotebook_LeftTabs | kNotebook_RightTabs); #else style |= kNotebook_LeftTabs; #endif } else if(EditorConfigST::Get()->GetOptions()->GetOutputTabsDirection() == wxRIGHT) { #ifdef __WXOSX__ style |= kNotebook_BottomTabs; #else style |= kNotebook_RightTabs; #endif } if(EditorConfigST::Get()->GetOptions()->IsTabColourDark()) { style &= ~kNotebook_LightTabs; style |= kNotebook_DarkTabs; } style |= kNotebook_UnderlineActiveTab; if(EditorConfigST::Get()->GetOptions()->IsMouseScrollSwitchTabs()) { style |= kNotebook_MouseScrollSwitchTabs; } m_book = new Notebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, style); #endif BitmapLoader* bmpLoader = PluginManager::Get()->GetStdIcons(); // Calculate the widest tab (the one with the 'Workspace' label) TODO: What happens with translations? int xx, yy; wxFont fnt = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); wxWindow::GetTextExtent(wxGetTranslation(REPLACE_IN_FILES), &xx, &yy, NULL, NULL, &fnt); mainSizer->Add(m_book, 1, wxEXPAND | wxALL | wxGROW, 0); // the IManager instance IManager* mgr = PluginManager::Get(); // Build tab m_buildWin = new NewBuildTab(m_book); m_book->AddPage(m_buildWin, wxGetTranslation(BUILD_WIN), true, bmpLoader->LoadBitmap(wxT("build"))); m_tabs.insert(std::make_pair(wxGetTranslation(BUILD_WIN), Tab(wxGetTranslation(BUILD_WIN), m_buildWin, bmpLoader->LoadBitmap(wxT("build"))))); mgr->AddOutputTab(wxGetTranslation(BUILD_WIN)); // Find in files m_findResultsTab = new FindResultsTab(m_book, wxID_ANY, wxGetTranslation(FIND_IN_FILES_WIN)); m_book->AddPage(m_findResultsTab, wxGetTranslation(FIND_IN_FILES_WIN), false, bmpLoader->LoadBitmap(wxT("find"))); m_tabs.insert( std::make_pair(wxGetTranslation(FIND_IN_FILES_WIN), Tab(wxGetTranslation(FIND_IN_FILES_WIN), m_findResultsTab, bmpLoader->LoadBitmap(wxT("find"))))); mgr->AddOutputTab(wxGetTranslation(FIND_IN_FILES_WIN)); // Replace In Files m_replaceResultsTab = new ReplaceInFilesPanel(m_book, wxID_ANY, wxGetTranslation(REPLACE_IN_FILES)); m_book->AddPage(m_replaceResultsTab, wxGetTranslation(REPLACE_IN_FILES), false, bmpLoader->LoadBitmap(wxT("find_and_replace"))); m_tabs.insert(std::make_pair( REPLACE_IN_FILES, Tab(REPLACE_IN_FILES, m_replaceResultsTab, bmpLoader->LoadBitmap(wxT("find_and_replace"))))); mgr->AddOutputTab(REPLACE_IN_FILES); // Show Usage ("References") m_showUsageTab = new FindUsageTab(m_book, wxGetTranslation(SHOW_USAGE)); m_book->AddPage(m_showUsageTab, wxGetTranslation(SHOW_USAGE), false, bmpLoader->LoadBitmap(wxT("find"))); m_tabs.insert(std::make_pair(wxGetTranslation(SHOW_USAGE), Tab(wxGetTranslation(SHOW_USAGE), m_showUsageTab, bmpLoader->LoadBitmap(wxT("find"))))); mgr->AddOutputTab(wxGetTranslation(SHOW_USAGE)); // Output tab m_outputWind = new OutputTab(m_book, wxID_ANY, wxGetTranslation(OUTPUT_WIN)); m_book->AddPage(m_outputWind, wxGetTranslation(OUTPUT_WIN), false, bmpLoader->LoadBitmap(wxT("console"))); m_tabs.insert(std::make_pair(wxGetTranslation(OUTPUT_WIN), Tab(wxGetTranslation(OUTPUT_WIN), m_outputWind, bmpLoader->LoadBitmap(wxT("console"))))); mgr->AddOutputTab(wxGetTranslation(OUTPUT_WIN)); #if HAS_LIBCLANG // Clang tab NewProjImgList images; m_clangOutputTab = new ClangOutputTab(m_book); m_book->AddPage(m_clangOutputTab, wxGetTranslation(CLANG_TAB), false, bmpLoader->LoadBitmap("clang")); m_tabs.insert(std::make_pair(wxGetTranslation(CLANG_TAB), Tab(wxGetTranslation(CLANG_TAB), m_clangOutputTab, bmpLoader->LoadBitmap("clang")))); mgr->AddOutputTab(wxGetTranslation(CLANG_TAB)); #endif // Tasks panel m_taskPanel = new TaskPanel(m_book, wxID_ANY, wxGetTranslation(TASKS)); m_book->AddPage(m_taskPanel, wxGetTranslation(TASKS), false, bmpLoader->LoadBitmap("tasks")); m_tabs.insert(std::make_pair(wxGetTranslation(TASKS), Tab(wxGetTranslation(TASKS), m_taskPanel, bmpLoader->LoadBitmap("tasks")))); mgr->AddOutputTab(wxGetTranslation(TASKS)); SetMinSize(wxSize(200, 100)); mainSizer->Layout(); }