Page 1 of 1
Development on CodeLite source itself
Posted: Thu Sep 09, 2010 9:17 am
by foxmuldr
I'm beginning to work on CodeLite development, meaning working on the editor itself. I need some help.
First, I have downloaded the latest wxFormBuilder and have been able to add/edit/modify the Misc dialog without problem. I have also been able to associate the user changes with my new m_showDebugOnRun member by duplicating what I found for the checkbox option above it in the file EditorSettingsMiscPanel.cpp, which took the first source line and made the second:
Code: Select all
EditorConfigST::Get()->SaveLongValue(wxT("ShowFullPathInFrameTitle"), m_fullFilePath->IsChecked() ? 1 : 0);
EditorConfigST::Get()->SaveLongValue(wxT("ShowDebugOnRun"), m_showDebugOnRun->IsChecked() ? 1 : 0);
And for the getting, in the same file:
Code: Select all
check = 1;
EditorConfigST::Get()->GetLongValue(wxT("ShowFullPathInFrameTitle"), check);
m_fullFilePath->SetValue(check ? true : false);
check = 1;
EditorConfigST::Get()->GetLongValue(wxT("ShowDebugOnRun"), check);
m_showDebugOnRun->SetValue(check ? true : false);
Does this need to be coded someplace else? Is this generated code? Or am I okay to manually include this?
Also, for my next issue, I cannot find where the menubar formbuilder (or code) is. How do I find it? And how do I edit it?
Thanks in advance!
Re: Development on CodeLite source itself
Posted: Thu Sep 09, 2010 9:50 am
by eranif
About making GUI entries persistent:
There are 2 ways of doing it
1) Using the method you just used (using EditorConfigST::Get()->SaveLongValue(key, value))
2) Deriving from SerializedObject class and implementing Serialize(Archive &arc) and DeSerialize(Archive &arc) ( have a look at generalinfo.h /cpp for an example of usage). And once the object is created, you can simply use this code to write / load the values from the disk:
Code: Select all
MySettings ms;
ms.SetSomeProperty(1);
ms.SetSomeProperty(wxT("String Prop"));
// write it to disk
EditorConfigST::Get()->WriteObject( wxT("MySettingsName"), &ms );
// read it
MySettings ms2;
EditorConfigST::Get()->ReadObject( wxT("MySettingsName"), &ms2 );
foxmuldr wrote:Does this need to be coded someplace else? Is this generated code? Or am I okay to manually include this?
It should be fine this way
foxmuldr wrote:Also, for my next issue, I cannot find where the menubar formbuilder (or code) is. How do I find it? And how do I edit it?
If you are looking to modify the menubar then it is /usr/share/codelite/rc/menu.xrc
Eran
Re: Development on CodeLite source itself
Posted: Thu Sep 09, 2010 9:54 am
by foxmuldr
eranif wrote:About making GUI entries persistent:
There are 2 ways of doing it
1) Using the method you just used (using EditorConfigST::Get()->SaveLongValue(key, value))
2) Deriving from SerializedObject class and implementing Serialize(Archive &arc) and DeSerialize(Archive &arc) ( have a look at generalinfo.h /cpp for an example of usage). And once the object is created, you can simply use this code to write / load the values from the disk:
Which do you recommend?
eranif wrote:If you are looking to modify the menubar then it is /usr/share/codelite/rc/menu.xrc
How about the simple toolbar at the top? And I use a single toolbar for my install. Is it different for non-singles?
- Rick
Re: Development on CodeLite source itself
Posted: Thu Sep 09, 2010 10:02 am
by eranif
foxmuldr wrote:Which do you recommend?
For "legacy" code that uses the old method, I would stick with the way it is already done.
For new code, I will use deriving from SerializedObject
foxmuldr wrote:How about the simple toolbar at the top? And I use a single toolbar for my install. Is it different for non-singles?
The toolbars is another story. It is hard coded in the code, have a look at:
clMainFrame::CreateToolbars16() and clMainFrame::CreateToolbars24()
The indication whether codelite should work with single or multiple toolbars is by calling this method:
Code: Select all
PluginManager::Get()->AllowToolbar()
Some other toolbar related info:
- The core application provides 4 toolbars (1 in single toolbar) - standard, search, build and debug
- All other toolbars are provided by the plugins (each plugin has a method named 'CreateToolbar()' which the plugin can choose to implement or to simply return NULL)
Eran
Re: Development on CodeLite source itself
Posted: Thu Sep 09, 2010 10:05 am
by foxmuldr
Thanks! Checking it out.
eranif wrote:clMainFrame::CreateToolbars16() and clMainFrame::CreateToolbars24()
...
PluginManager::Get()->AllowToolbar()
...
Some other toolbar related info:
- The core application provides 4 toolbars (1 in single toolbar) - standard, search, build and debug
- All other toolbars are provided by the plugins (each plugin has a method named 'CreateToolbar()' which the plugin can choose to implement or to simply return NULL)
If I prepare a patch, do I submit it to the patches area on SourceForge? Or here? Or how?
Re: Development on CodeLite source itself
Posted: Thu Sep 09, 2010 12:25 pm
by eranif
Just post it here as attachment - I will test it
Eran