1610
1702
#endif // wxUSE_STATUSBAR
1613
void MainFrame::DoUpdateEditorStyle(wxFlatNotebook* target, const wxString& prefix, long defaultStyle)
1705
void MainFrame::DoUpdateEditorStyle(cbAuiNotebook* target, const wxString& prefix, long defaultStyle)
1618
1710
ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("app"));
1711
target->SetTabCtrlHeight(-1);
1619
1713
long nbstyle = cfg->ReadInt(_T("/environment/tabs_style"), 0);
1620
1714
switch (nbstyle)
1623
nbstyle = wxFNB_FANCY_TABS;
1627
nbstyle = wxFNB_VC71;
1631
nbstyle = wxFNB_VC8;
1716
case 1: // simple style
1717
target->SetArtProvider(new wxAuiSimpleTabArt());
1720
case 2: // VC 7.1 style
1721
target->SetArtProvider(new NbStyleVC71());
1724
case 3: // Firefox 2 style
1725
target->SetArtProvider(new NbStyleFF2());
1728
default: // default style
1729
target->SetArtProvider(new wxAuiDefaultTabArt());
1638
nbstyle |= defaultStyle;
1733
nbstyle = defaultStyle;
1639
1734
if (cfg->ReadBool(_T("/environment/") + prefix + _T("_tabs_bottom")))
1640
nbstyle |= wxFNB_BOTTOM;
1642
if (cfg->ReadBool(_T("/environment/tabs_smart")))
1643
nbstyle |= wxFNB_SMART_TABS;
1735
nbstyle |= wxAUI_NB_BOTTOM;
1645
1737
if (cfg->ReadBool(_T("/environment/tabs_list")))
1647
nbstyle |= wxFNB_DROPDOWN_TABS_LIST;
1648
nbstyle |= wxFNB_NO_NAV_BUTTONS;
1738
nbstyle |= wxAUI_NB_WINDOWLIST_BUTTON;
1651
1740
target->SetWindowStyleFlag(nbstyle);
1652
target->SetGradientColorBorder(cfg->ReadColour(_T("/environment/gradient_border"), wxColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNSHADOW))));
1653
target->SetGradientColorFrom(cfg->ReadColour(_T("/environment/gradient_from"), wxColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE))));
1654
target->SetGradientColorTo(cfg->ReadColour(_T("/environment/gradient_to"), *wxWHITE));
1657
1743
void MainFrame::DoUpdateEditorStyle()
1659
wxFlatNotebook* fn = Manager::Get()->GetEditorManager()->GetNotebook();
1660
DoUpdateEditorStyle(fn, _T("editor"), wxFNB_MOUSE_MIDDLE_CLOSES_TABS | wxFNB_X_ON_TAB | wxFNB_NO_X_BUTTON);
1663
DoUpdateEditorStyle(fn, _T("message"), wxFNB_NO_X_BUTTON);
1665
fn = Manager::Get()->GetProjectManager()->GetNotebook();
1666
DoUpdateEditorStyle(fn, _T("project"), wxFNB_NO_X_BUTTON);
1745
long closestyle = Manager::Get()->GetConfigManager(_T("app"))->ReadBool(_T("/environment/tabs_close_on_all"))?wxAUI_NB_CLOSE_ON_ALL_TABS:0;
1746
cbAuiNotebook* an = Manager::Get()->GetEditorManager()->GetNotebook();
1748
DoUpdateEditorStyle(an, _T("editor"), closestyle | wxAUI_NB_DEFAULT_STYLE | wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN);
1751
DoUpdateEditorStyle(an, _T("message"), closestyle | wxAUI_NB_DEFAULT_STYLE);
1753
an = Manager::Get()->GetProjectManager()->GetNotebook();
1754
DoUpdateEditorStyle(an, _T("project"), wxAUI_NB_SCROLL_BUTTONS | wxAUI_NB_TAB_MOVE);
1669
1757
void MainFrame::DoUpdateLayoutColours()
1829
1940
wxString buf = event.GetString();
1830
1941
wxString links;
1832
links << _T("<b>Recent projects</b><br>\n");
1943
links << _T("<table>\n<tr><td colspan=\"2\"><b>");
1944
links << _("Recent projects");
1945
links << _T("</b></td></tr>\n");
1833
1946
if (m_pProjectsHistory->GetCount())
1835
links << _T("<ul>");
1836
for (int i = 0; i < 9; ++i)
1948
for (size_t i = 0; i < m_pProjectsHistory->GetCount(); ++i)
1838
if (i >= (int)m_pProjectsHistory->GetCount())
1840
links << wxString::Format(_T("<li><a href=\"CB_CMD_OPEN_HISTORY_PROJECT_%d\">%s</a></li>"),
1841
i + 1, m_pProjectsHistory->GetHistoryFile(i).c_str());
1950
links << _T("<tr><td width=\"50\"><img alt=\"\" width=\"20\" src=\"blank.png\" />");
1951
links << wxString::Format(_T("<a href=\"CB_CMD_DELETE_HISTORY_PROJECT_%d\"><img alt=\"\" src=\"trash_16x16.png\" /></a>"),
1953
links << _T("<img alt=\"\" width=\"10\" src=\"blank.png\" /></td><td width=\"10\">");
1954
links << wxString::Format(_T("<a href=\"CB_CMD_OPEN_HISTORY_PROJECT_%d\">%s</a>"),
1955
i + 1, m_pProjectsHistory->GetHistoryFile(i).c_str());
1956
links << _T("</td></tr>\n");
1843
links << _T("</ul><br>");
1846
links << _T(" No recent projects<br>\n");
1961
links << _T("<tr><td style=\"width:2em;\"></td><td> ");
1962
links << _("No recent projects");
1963
links << _T("</td></tr>\n");
1848
links << _T("<br><b>Recent files</b><br>\n");
1966
links << _T("</table>\n<table>\n<tr><td colspan=\"2\"><b>");
1967
links << _("Recent files");
1968
links <<_T("</b></td></tr>\n");
1849
1969
if (m_pFilesHistory->GetCount())
1851
links << _T("<ul>");
1852
for (int i = 0; i < 9; ++i)
1971
for (size_t i = 0; i < m_pFilesHistory->GetCount(); ++i)
1854
if (i >= (int)m_pFilesHistory->GetCount())
1856
links << wxString::Format(_T("<li><a href=\"CB_CMD_OPEN_HISTORY_FILE_%d\">%s</a></li>"),
1857
i + 1, m_pFilesHistory->GetHistoryFile(i).c_str());
1973
links << _T("<tr><td width=\"50\"><img alt=\"\" width=\"20\" src=\"blank.png\" />");
1974
links << wxString::Format(_T("<a href=\"CB_CMD_DELETE_HISTORY_FILE_%d\"><img alt=\"\" src=\"trash_16x16.png\" /></a>"),
1976
links << _T("<img alt=\"\" width=\"10\" src=\"blank.png\" /></td><td width=\"10\">");
1977
links << wxString::Format(_T("<a href=\"CB_CMD_OPEN_HISTORY_FILE_%d\">%s</a>"),
1978
i + 1, m_pFilesHistory->GetHistoryFile(i).c_str());
1979
links << _T("</td></tr>\n");
1859
links << _T("</ul>");
1862
links << _T(" No recent files<br>\n");
1984
links << _T("<tr><td style=\"width:2em;\"></td><td> ");
1985
links << _("No recent files");
1986
links << _T("</td></tr>\n");
1989
links << _T("</table>\n");
1866
1993
buf.Replace(_T("CB_VAR_RECENT_FILES_AND_PROJECTS"), links);
1994
buf.Replace(_T("CB_TXT_NEW_PROJECT"), _("Create a new project"));
1995
buf.Replace(_T("CB_TXT_OPEN_PROJECT"), _("Open an existing project"));
1996
buf.Replace(_T("CB_TXT_VISIT_FORUMS"), _("Visit the Code::Blocks forums"));
1997
buf.Replace(_T("CB_TXT_REPORT_BUG"), _("Report a bug"));
1998
buf.Replace(_T("CB_TXT_REQ_NEW_FEATURE"), _("Request a new feature"));
1867
1999
((StartHerePage*)sh)->SetPageContent(buf);
1885
2017
wxMenu* recentFiles = 0;
1886
wxMenuItem* clear = menu->FindItem(idFileOpenRecentFileClearHistory, &recentFiles);
2018
menu->FindItem(idFileOpenRecentFileClearHistory, &recentFiles);
1887
2019
if (recentFiles)
1889
recentFiles->Remove(clear);
1891
2021
wxArrayString files = Manager::Get()->GetConfigManager(_T("app"))->ReadArrayString(_T("/recent_files"));
1892
2022
for (int i = (int)files.GetCount() - 1; i >= 0; --i)
1894
if(wxFileExists(files[i]))
2024
if (wxFileExists(files[i]))
1895
2026
m_pFilesHistory->AddFileToHistory(files[i]);
1897
m_pFilesHistory->UseMenu(recentFiles);
1898
m_pFilesHistory->AddFilesToMenu(recentFiles);
1899
if (recentFiles->GetMenuItemCount())
1900
recentFiles->AppendSeparator();
1901
recentFiles->Append(clear);
2029
if (m_pFilesHistory->GetCount() > 0)
2031
recentFiles->InsertSeparator(0);
2032
for (size_t i = 0; i < m_pFilesHistory->GetCount(); ++i)
2034
recentFiles->Insert(recentFiles->GetMenuItemCount() - 2, wxID_FILE1 + i,
2035
wxString::Format(_T("&%d "), i + 1) + m_pFilesHistory->GetHistoryFile(i));
1903
2039
wxMenu* recentProjects = 0;
1904
clear = menu->FindItem(idFileOpenRecentProjectClearHistory, &recentProjects);
2040
menu->FindItem(idFileOpenRecentProjectClearHistory, &recentProjects);
1905
2041
if (recentProjects)
1907
2043
m_pProjectsHistory = new wxFileHistory(9, wxID_FILE10);
1908
recentProjects->Remove(clear);
1910
2045
wxArrayString files = Manager::Get()->GetConfigManager(_T("app"))->ReadArrayString(_T("/recent_projects"));
1911
2046
for (int i = (int)files.GetCount() - 1; i >= 0; --i)
1913
if(wxFileExists(files[i]))
2048
if (wxFileExists(files[i]))
1914
2049
m_pProjectsHistory->AddFileToHistory(files[i]);
1916
m_pProjectsHistory->UseMenu(recentProjects);
1917
m_pProjectsHistory->AddFilesToMenu(recentProjects);
1918
if (recentProjects->GetMenuItemCount())
1919
recentProjects->AppendSeparator();
1920
recentProjects->Append(clear);
2051
if (m_pProjectsHistory->GetCount() > 0)
2053
recentProjects->InsertSeparator(0);
2054
for (size_t i = 0; i < m_pProjectsHistory->GetCount(); ++i)
2056
recentProjects->Insert(recentProjects->GetMenuItemCount() - 2, wxID_FILE10 + i,
2057
wxString::Format(_T("&%d "), i + 1) + m_pProjectsHistory->GetHistoryFile(i));
2887
3068
void MainFrame::OnEditSelectAll(wxCommandEvent& event)
2889
cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor();
2891
ed->GetControl()->SelectAll();
2894
CommentToken GetCommentToken(cbStyledTextCtrl* stc)
2896
CommentToken comment;
2897
comment.lineComment = _T("");
2898
comment.streamCommentStart = _T("");
2899
comment.streamCommentEnd = _T("");
2900
comment.boxCommentStart = _T("");
2901
comment.boxCommentMid = _T("");
2902
comment.boxCommentEnd = _T("");
2904
switch(stc->GetLexer())
2906
case wxSCI_LEX_CONTAINER: comment.lineComment = _T(""); break;
2907
case wxSCI_LEX_NULL: comment.lineComment = _T(""); break;
2908
case wxSCI_LEX_PYTHON: comment.lineComment = _T("#"); break;
2910
comment.lineComment = _T("//");
2911
comment.streamCommentStart = _T("/*");
2912
comment.streamCommentEnd = _T("*/");
2913
comment.boxCommentStart = _T("/* ");
2914
comment.boxCommentMid = _T(" * ");
2915
comment.boxCommentEnd = _T(" */");
2917
case wxSCI_LEX_HTML:
2918
comment.lineComment = _T("//");
2919
comment.streamCommentStart = _T("/*");
2920
comment.streamCommentEnd = _T("*/");
2921
comment.boxCommentStart = _T("/* ");
2922
comment.boxCommentMid = _T(" * ");
2923
comment.boxCommentEnd = _T(" */");
2924
break; // PHP uses HTML lexer
2926
comment.streamCommentStart = _T("<!--");
2927
comment.streamCommentEnd = _T("-->");
2928
comment.boxCommentStart = _T("<!-- ");
2929
comment.boxCommentMid = _T(" -- ");
2930
comment.boxCommentEnd = _T(" -->");
2932
case wxSCI_LEX_PERL: comment.lineComment = _T("#"); break;
2933
case wxSCI_LEX_SQL: comment.lineComment = _T("--"); break;
2934
case wxSCI_LEX_VB: comment.lineComment = _T("'"); break;
2935
case wxSCI_LEX_PROPERTIES: comment.lineComment = _T("#"); break;
2936
case wxSCI_LEX_ERRORLIST: comment.lineComment = _T(""); break;
2937
case wxSCI_LEX_MAKEFILE: comment.lineComment = _T("#"); break;
2938
case wxSCI_LEX_BATCH: comment.lineComment = _T("REM "); break;
2939
case wxSCI_LEX_XCODE: comment.lineComment = _T(""); break;
2940
case wxSCI_LEX_LATEX: comment.lineComment = _T("%"); break;
2942
comment.lineComment = _T("--");
2943
comment.streamCommentStart = _T("/*");
2944
comment.streamCommentEnd = _T("*/");
2945
comment.boxCommentStart = _T("/* ");
2946
comment.boxCommentMid = _T(" * ");
2947
comment.boxCommentEnd = _T(" */");
2949
case wxSCI_LEX_DIFF: comment.lineComment = _T(""); break;
2950
case wxSCI_LEX_CONF: comment.lineComment = _T(""); break;
2951
case wxSCI_LEX_PASCAL:
2952
comment.lineComment = _T("//"); //delphi style lineComments, otherwise use { } or (* and *)
2953
comment.streamCommentStart = _T("{");
2954
comment.streamCommentEnd = _T("}");
2955
comment.boxCommentStart = _T("(* ");
2956
comment.boxCommentMid = _T(" * ");
2957
comment.boxCommentEnd = _T(" *)");
2959
case wxSCI_LEX_AVE: comment.lineComment = _T(""); break;
2960
case wxSCI_LEX_ADA: comment.lineComment = _T("--"); break;
2961
case wxSCI_LEX_LISP:
2962
comment.lineComment = _T(";");
2963
comment.streamCommentStart = _T("#|");
2964
comment.streamCommentEnd = _T("|#");
2965
comment.boxCommentStart = _T("#| ");
2966
comment.boxCommentMid = _T(" | ");
2967
comment.boxCommentEnd = _T(" |#");
2969
case wxSCI_LEX_RUBY:
2970
comment.lineComment = _T("#");
2971
comment.boxCommentStart = _T("=begin");
2972
comment.boxCommentEnd = _T("=end");
2974
case wxSCI_LEX_EIFFEL: comment.lineComment = _T("--"); break;
2975
case wxSCI_LEX_EIFFELKW: comment.lineComment = _T("--"); break;
2976
case wxSCI_LEX_TCL: comment.lineComment = _T("#"); break;
2977
case wxSCI_LEX_NNCRONTAB: comment.lineComment = _T(""); break;
2978
case wxSCI_LEX_BULLANT: comment.lineComment = _T(""); break;
2979
case wxSCI_LEX_VBSCRIPT: comment.lineComment = _T("'"); break;
2980
case wxSCI_LEX_BAAN: comment.lineComment = _T(""); break;
2981
case wxSCI_LEX_MATLAB:
2982
comment.lineComment = _T("%");
2983
comment.streamCommentStart = _T("%{");
2984
comment.streamCommentEnd = _T("}%");
2985
comment.boxCommentStart = _T("%{ ");
2986
comment.boxCommentEnd = _T(" }%");
2988
case wxSCI_LEX_SCRIPTOL: comment.lineComment = _T("`"); break;
2989
case wxSCI_LEX_ASM: comment.lineComment = _T(";"); break;
2990
case wxSCI_LEX_CPPNOCASE:
2991
comment.lineComment = _T("//");
2992
comment.streamCommentStart = _T("/*");
2993
comment.streamCommentEnd = _T("*/");
2994
comment.boxCommentStart = _T("/* ");
2995
comment.boxCommentMid = _T(" * ");
2996
comment.boxCommentEnd = _T(" */");
2998
case wxSCI_LEX_FORTRAN: comment.lineComment = _T("!"); break;
3000
comment.lineComment = _T("");
3001
comment.streamCommentStart = _T("/*");
3002
comment.streamCommentEnd = _T("*/");
3003
comment.boxCommentStart = _T("/* ");
3004
comment.boxCommentMid = _T(" * ");
3005
comment.boxCommentEnd = _T(" */");
3008
comment.lineComment = _T("//"); // original here was "//@-" don't know why
3009
comment.streamCommentStart = _T("/*");
3010
comment.streamCommentEnd = _T("*/");
3011
comment.boxCommentStart = _T("/* ");
3012
comment.boxCommentMid = _T(" * ");
3013
comment.boxCommentEnd = _T(" */");
3015
case wxSCI_LEX_LOUT: comment.lineComment = _T("#"); break;
3016
case wxSCI_LEX_ESCRIPT: comment.lineComment = _T(""); break; //couldn't find
3017
case wxSCI_LEX_PS: comment.lineComment = _T("%"); break; // not sure if it's only one % or multiple
3018
case wxSCI_LEX_NSIS: comment.lineComment = _T(""); break;
3019
case wxSCI_LEX_MMIXAL: comment.lineComment = _T(""); break;
3020
case wxSCI_LEX_CLW: comment.lineComment = _T(""); break;
3021
case wxSCI_LEX_CLWNOCASE: comment.lineComment = _T(""); break;
3022
case wxSCI_LEX_LOT: comment.lineComment = _T(""); break;
3023
case wxSCI_LEX_YAML: comment.lineComment = _T(""); break;
3024
case wxSCI_LEX_TEX: comment.lineComment = _T("%"); break;
3025
case wxSCI_LEX_METAPOST: comment.lineComment = _T(""); break;
3026
case wxSCI_LEX_POWERBASIC: comment.lineComment = _T(""); break;
3027
case wxSCI_LEX_FORTH: comment.lineComment = _T(""); break;
3028
case wxSCI_LEX_ERLANG: comment.lineComment = _T(""); break;
3029
case wxSCI_LEX_OCTAVE: comment.lineComment = _T("#"); break; // or '%'
3030
case wxSCI_LEX_MSSQL: comment.lineComment = _T(""); break;
3031
case wxSCI_LEX_VERILOG: comment.lineComment = _T("//"); break;
3032
case wxSCI_LEX_KIX: comment.lineComment = _T(""); break;
3033
case wxSCI_LEX_SPECMAN: comment.lineComment = _T(""); break;
3034
case wxSCI_LEX_APDL: comment.lineComment = _T(""); break;
3035
case wxSCI_LEX_BASH: comment.lineComment = _T("#"); break;
3036
case wxSCI_LEX_VHDL: comment.lineComment = _T("--"); break;
3037
case wxSCI_LEX_CAML: comment.lineComment = _T(""); break;
3038
case wxSCI_LEX_BLITZBASIC: comment.lineComment = _T(""); break;
3039
case wxSCI_LEX_PUREBASIC: comment.lineComment = _T(""); break;
3040
case wxSCI_LEX_HASKELL: comment.lineComment = _T("--"); break;
3041
case wxSCI_LEX_PHPSCRIPT:
3042
comment.lineComment = _T("#");
3043
//comment.lineComment = _T("//");
3044
comment.streamCommentStart = _T("/*");
3045
comment.streamCommentEnd = _T("*/");
3046
comment.boxCommentStart = _T("/* ");
3047
comment.boxCommentMid = _T(" * ");
3048
comment.boxCommentEnd = _T(" */");
3050
case wxSCI_LEX_REBOL: comment.lineComment = _T(""); break; // couldn't find
3051
case wxSCI_LEX_SMALLTALK: comment.lineComment = _T(""); break; // uses double quotes at start and end i.e. "lineComment"
3052
case wxSCI_LEX_FLAGSHIP: comment.lineComment = _T(""); break;
3053
case wxSCI_LEX_CSOUND: comment.lineComment = _T(""); break;
3054
case wxSCI_LEX_FREEBASIC: comment.lineComment = _T(""); break;
3055
default: // Let the user decide if he wants to lineComment or not
3056
comment.lineComment = _T("//");
3057
comment.streamCommentStart = _T("/*");
3058
comment.streamCommentEnd = _T("*/");
3059
comment.boxCommentStart = _T("/* ");
3060
comment.boxCommentMid = _T(" * ");
3061
comment.boxCommentEnd = _T(" */");
3070
EditorBase* eb = Manager::Get()->GetEditorManager()->GetActiveEditor();
3067
3075
/* This is a shameless rip-off of the original OnEditCommentSelected function,
3068
3076
* now more suitingly named OnEditToggleCommentSelected (because that's what
3944
3992
ed->GetControl()->SetFocus();
3995
void MainFrame::OnSwitchTabs(wxCommandEvent& event)
3997
// Get the notebook from the editormanager:
3998
cbAuiNotebook* nb = Manager::Get()->GetEditorManager()->GetNotebook();
4002
// Create container and add all open editors:
4003
wxSwitcherItems items;
4004
items.AddGroup(_("Open files"), wxT("editors"));
4005
for (size_t i = 0; i < nb->GetPageCount(); ++i)
4007
wxString title = nb->GetPageText(i);
4008
wxWindow* window = nb->GetPage(i);
4010
items.AddItem(title, title, i, nb->GetPageBitmap(i)).SetWindow(window);
4013
// Select the focused editor:
4014
int idx = items.GetIndexForFocus();
4015
if (idx != wxNOT_FOUND)
4016
items.SetSelection(idx);
4018
// Create the switcher dialog
4019
wxSwitcherDialog dlg(items, wxGetApp().GetTopWindow());
4021
// Ctrl+Tab workaround for non windows platforms:
4022
if (platform::cocoa)
4023
dlg.SetModifierKey(WXK_ALT);
4024
else if (platform::gtk)
4025
dlg.SetExtraNavigationKey(wxT(','));
4027
// Finally show the dialog:
4028
int answer = dlg.ShowModal();
4030
// If necessary change the selected editor:
4031
if ((answer == wxID_OK) && (dlg.GetSelection() != -1))
4033
wxSwitcherItem& item = items.GetItem(dlg.GetSelection());
4034
wxWindow* win = item.GetWindow();
4037
nb->SetSelection(item.GetId());
3947
4043
void MainFrame::OnToggleFullScreen(wxCommandEvent& event)
3949
4045
ShowFullScreen( !IsFullScreen(), wxFULLSCREEN_NOTOOLBAR// | wxFULLSCREEN_NOSTATUSBAR
3950
4046
| wxFULLSCREEN_NOBORDER | wxFULLSCREEN_NOCAPTION );
3952
// Create fullscreen-close button if we're in fullscreen
3953
if( IsFullScreen() )
4048
// Create full screen-close button if we're in full screen
4049
if ( IsFullScreen() )
3956
4052
// Show the button to the bottom-right of the container
4232
4330
if (Manager::IsAppShuttingDown())
4234
4332
if (event.window)
4235
infoPane->RemoveNonLogger(event.window);
4333
m_pInfoPane->RemoveNonLogger(event.window);
4237
infoPane->DeleteLogger(event.logger);
4335
m_pInfoPane->DeleteLogger(event.logger);
4240
4338
void MainFrame::OnSwitchToLogWindow(CodeBlocksLogEvent& event)
4242
4340
if (event.window)
4243
infoPane->ShowNonLogger(event.window);
4341
m_pInfoPane->ShowNonLogger(event.window);
4244
4342
else if (event.logger)
4245
infoPane->Show(event.logger);
4343
m_pInfoPane->Show(event.logger);
4248
4346
void MainFrame::OnShowLogManager(CodeBlocksLogEvent& event)
4250
if (!m_AutoHideLogs)
4348
if (!Manager::Get()->GetConfigManager(_T("message_manager"))->ReadBool(_T("/auto_hide"), false))
4253
m_LayoutManager.GetPane(infoPane).Show(true);
4351
m_LayoutManager.GetPane(m_pInfoPane).Show(true);
4254
4352
DoUpdateLayout();
4257
4355
void MainFrame::OnHideLogManager(CodeBlocksLogEvent& event)
4259
if (!m_AutoHideLogs || m_AutoHideLockCounter > 0)
4357
if (!Manager::Get()->GetConfigManager(_T("message_manager"))->ReadBool(_T("/auto_hide"), false) ||
4358
m_AutoHideLockCounter > 0)
4262
m_LayoutManager.GetPane(infoPane).Show(false);
4361
m_LayoutManager.GetPane(m_pInfoPane).Show(false);
4263
4362
DoUpdateLayout();
4266
4365
void MainFrame::OnLockLogManager(CodeBlocksLogEvent& event)
4268
if (!m_AutoHideLogs)
4367
if (!Manager::Get()->GetConfigManager(_T("message_manager"))->ReadBool(_T("/auto_hide"), false))
4270
4369
++m_AutoHideLockCounter;
4273
4372
void MainFrame::OnUnlockLogManager(CodeBlocksLogEvent& event)
4275
if (!m_AutoHideLogs && m_AutoHideLockCounter > 0)
4374
if (!Manager::Get()->GetConfigManager(_T("message_manager"))->ReadBool(_T("/auto_hide"), false) &&
4375
m_AutoHideLockCounter > 0)
4277
4377
if (--m_AutoHideLockCounter == 0)
4279
m_LayoutManager.GetPane(infoPane).Show(false);
4379
m_LayoutManager.GetPane(m_pInfoPane).Show(false);
4280
4380
DoUpdateLayout();
4384
void MainFrame::StartupDone()
4386
m_StartupDone = true;