User forums > General (but related to Code::Blocks)

Several suggestions for workspace optimization

<< < (2/5) > >>

Jenna:

--- Quote from: m.29 on April 27, 2011, 11:38:30 am ---I have also limited screen space and use View -> Perspectives -> Code::Blocks minimal. I set shortcut Ctrl + 2 for it and Ctrl + 1 for default perspective. This gives me enough space for coding and all panels for other actions. I think it's the best way.

--- End quote ---
Instead of the shortcut, you can double-click on a tab to change between actual perspective and minimal perspective.
You can also add whatever you need for minimal perspective. Next time you change it to another perspective or you close C::B you will be asked, whether you want to save it or not.

Jenna:
About the vertical tabs at the left or right side: that does not work with the current wxAuiNoteBokk (wxWidgets limitation).

Kalith:

--- Quote from: ollydbg on April 27, 2011, 08:31:23 am ---Hi, it seems we can change it. (after reading some wx manual about wxtoolbar and wxchoice. :D)
--- End quote ---
Cool :)


--- Quote from: killerbot on April 27, 2011, 08:42:48 am ---You can already make this easier : right click on the project in the tree, and play around with the options in Project tree submenu
--- End quote ---
Yes thanks, that's a good start !
Edit : I tried, and it's working well except when the project has a complex hierarchy : there is no way to distinguish files that are in different folders, or hide some of them that you don't want to touch. I realize that's a luxury, and somehow you have to make compromises to optimize your workspace, but still you could so something like :
and preserve all the advantages of the tree view.


--- Quote from: m.29 on April 27, 2011, 11:38:30 am ---I have also limited screen space and use View -> Perspectives -> Code::Blocks minimal. I set shortcut Ctrl + 2 for it and Ctrl + 1 for default perspective.
--- End quote ---
That's a good idea, I'll try to see if I can get used to it. But probably not with the bare minimal perspective.


--- Quote from: jens on April 27, 2011, 06:19:45 pm ---About the vertical tabs at the left or right side: that does not work with the current wxAuiNoteBokk (wxWidgets limitation).

--- End quote ---
Isn't wxAuiNoteBook the text editor panel ?

ollydbg:

--- Quote from: Kalith on April 30, 2011, 03:24:04 pm ---
--- Quote from: ollydbg on April 27, 2011, 08:31:23 am ---Hi, it seems we can change it. (after reading some wx manual about wxtoolbar and wxchoice. :D)
--- End quote ---
Cool :)

--- End quote ---

I have take some time to implement this feature, so that user can change it.

See the patch:

--- Code: ---Index: ccoptionsdlg.cpp
===================================================================
--- ccoptionsdlg.cpp (revision 7639)
+++ ccoptionsdlg.cpp (working copy)
@@ -155,6 +155,11 @@
     XRCCTRL(*this, "chkTreeMembers", wxCheckBox)->SetValue(m_Parser.ClassBrowserOptions().treeMembers);
     XRCCTRL(*this, "chkScopeFilter", wxCheckBox)->SetValue(cfg->ReadBool(_T("/scope_filter"), true));
 
+
+
+    XRCCTRL(*this, "spnChoiceScopeLength", wxSpinCtrl)->SetValue(cfg->ReadInt(_T("/toolbar_scope_length"),286));
+    XRCCTRL(*this, "spnChoiceFunctionLength", wxSpinCtrl)->SetValue(cfg->ReadInt(_T("/toolbar_function_length"),660));
+
 //    m_Parser.ParseBuffer(g_SampleClasses, true);
 //    m_Parser.BuildTree(*XRCCTRL(*this, "treeClasses", wxTreeCtrl));
 }
@@ -220,6 +225,9 @@
     m_Parser.ClassBrowserOptions().treeMembers     = XRCCTRL(*this, "chkTreeMembers",         wxCheckBox)->GetValue();
     cfg->Write(_T("/scope_filter"),         (bool) XRCCTRL(*this, "chkScopeFilter",           wxCheckBox)->GetValue());
 
+    cfg->Write(_T("/toolbar_scope_length"),       (int)  XRCCTRL(*this, "spnChoiceScopeLength",            wxSpinCtrl)->GetValue());
+    cfg->Write(_T("/toolbar_function_length"),    (int)  XRCCTRL(*this, "spnChoiceFunctionLength",         wxSpinCtrl)->GetValue());
+
     // Now write the parser options and re-read them again to make sure they are up-to-date
     m_Parser.WriteOptions();
     m_NativeParsers->RereadParserOptions();
Index: codecompletion.cpp
===================================================================
--- codecompletion.cpp (revision 7639)
+++ codecompletion.cpp (working copy)
@@ -88,6 +88,7 @@
 #endif
 
 static wxCriticalSection s_HeadersCriticalSection;
+/** scopes choice name for global functions in CC's toolbar */
 static wxString g_GlobalScope(_T("<global>"));
 
 // this auto-registers the plugin
@@ -597,11 +598,14 @@
 {
     ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("code_completion"));
     bool showScope = cfg->ReadBool(_T("/scope_filter"), true);
+    int  choice_scope_length = cfg->ReadInt(_T("/toolbar_scope_length"), 286);
+    int  choice_function_length = cfg->ReadInt(_T("/toolbar_function_length"), 660);
 
     if (showScope && !m_Scope)
     {
-        m_Scope = new wxChoice(m_ToolBar, wxNewId(), wxPoint(0, 0), wxSize(280, -1), 0, 0);
+        m_Scope = new wxChoice(m_ToolBar, wxNewId(), wxPoint(0, 0), wxSize(100, -1), 0, 0);
         m_ToolBar->InsertControl(0, m_Scope);
+        m_Function->SetSize(wxSize(choice_function_length,-1));
     }
     else if (!showScope && m_Scope)
     {
@@ -609,8 +613,15 @@
         m_Scope = NULL;
     }
     else
+    {
+        m_Scope->SetSize(wxSize(choice_scope_length,-1));
+        m_Function->SetSize(wxSize(choice_function_length,-1));
+        m_ToolBar->Realize();
+        m_ToolBar->SetInitialSize();
         return;
+    }
 
+
     m_ToolBar->Realize();
     m_ToolBar->SetInitialSize();
 }
@@ -1551,6 +1562,9 @@
     ed->GetControl()->CallTipShow(pos, definition);
     if (start != 0 && end > start)
         ed->GetControl()->CallTipSetHighlight(start, end);
+    //Manager::Get()->GetLogManager()->DebugLog(F(_T("start=%d, end=%d"), start, end));
+    //Manager::Get()->GetLogManager()->DebugLog(F(_T("definition=%s"), definition.wx_str()));
+
 }
 
 int CodeCompletion::DoClassMethodDeclImpl()
Index: resources/settings.xrc
===================================================================
--- resources/settings.xrc (revision 7639)
+++ resources/settings.xrc (working copy)
@@ -530,6 +530,56 @@
  <border>5</border>
  <option>1</option>
  </object>
+ <object class="sizeritem">
+ <object class="wxBoxSizer">
+ <object class="sizeritem">
+ <object class="wxStaticText" name="ID_STATICTEXT8">
+ <label>Scope choice length</label>
+ </object>
+ <flag>wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
+ <border>5</border>
+ <option>1</option>
+ </object>
+ <object class="sizeritem">
+ <object class="wxSpinCtrl" name="spnChoiceScopeLength">
+ <value>286</value>
+ <min>100</min>
+ <max>600</max>
+ </object>
+ <flag>wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
+ <border>5</border>
+ <option>1</option>
+ </object>
+ </object>
+ <flag>wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
+ <border>5</border>
+ <option>1</option>
+ </object>
+ <object class="sizeritem">
+ <object class="wxBoxSizer">
+ <object class="sizeritem">
+ <object class="wxStaticText" name="ID_STATICTEXT9">
+ <label>Function choice length</label>
+ </object>
+ <flag>wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
+ <border>5</border>
+ <option>1</option>
+ </object>
+ <object class="sizeritem">
+ <object class="wxSpinCtrl" name="spnChoiceFunctionLength">
+ <value>660</value>
+ <min>1</min>
+ <max>800</max>
+ </object>
+ <flag>wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
+ <border>5</border>
+ <option>1</option>
+ </object>
+ </object>
+ <flag>wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
+ <border>5</border>
+ <option>1</option>
+ </object>
  </object>
  <flag>wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_BOTTOM</flag>
  <border>8</border>


--- End code ---

MortenMacFly:

--- Quote from: ollydbg on December 22, 2011, 05:44:48 am ---
--- Code: ---     if (showScope && !m_Scope)
[...]
     else if (!showScope && m_Scope)
[...]
     else
+    {
+        m_Scope->SetSize(wxSize(choice_scope_length,-1));

--- End code ---

--- End quote ---
Be careful here - you probably introduced a crash candidate. The else - clause is entered in case:
1.) showScope && m_Scope --> OK
2.) !showScope && !m_Scope --> Not OK --> NULL pointer access at m_Scope->SetSize(...).

Maybe I missed something but that's what I see from the patch.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version