Difference between revisions of "WxWidgets"
(→Original Document) |
|||
Line 1: | Line 1: | ||
− | <table width="100%"> <tr><td bgcolor="#FFCFCF">This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.</td></tr> </table>== wxWidgets integration with Pluto == | + | <table width="100%"> <tr><td bgcolor="#FFCFCF">This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.</td></tr> </table> |
+ | == wxWidgets integration with Pluto == | ||
wxWidgets must be compiled with: | wxWidgets must be compiled with: | ||
− | + | --with-gtk=2 --enable-monolithic --with-sdl --with-opengl | |
For debug builds, add | For debug builds, add | ||
− | + | --enable-debug | |
sdl: needed by Orbiter | sdl: needed by Orbiter | ||
− | opengl: needed by Orbiter | + | opengl: needed by Orbiter |
+ | |||
+ | ==Required debian-pluto packages== | ||
+ | |||
+ | Release executables: libwxgtk2.6-0 | ||
+ | Debug executables, linked with debug version of the wx library: libwxgtk2.6-dbg | ||
+ | |||
− | |||
− | |||
− | |||
== wxWidgets integration with Orbiter == | == wxWidgets integration with Orbiter == | ||
Line 19: | Line 23: | ||
A new directory, Orbiter/wxAppMain, was created, which contains only wx-related files | A new directory, Orbiter/wxAppMain, was created, which contains only wx-related files | ||
+ | All *.cpp and *.h files added in this directory are automatically used by the Makefile in Orbiter | ||
+ | |||
+ | Read the following link "Integrating custom controls in Orbiter" | ||
+ | http://10.0.0.175/wiki/index.php/Integrating_custom_controls_in_Orbiter | ||
+ | which will explain how to use the wx dialogs, and control them | ||
+ | |||
+ | |||
+ | |||
+ | == Creating a new wxWidgets dialog to be used in Orbiter == | ||
+ | |||
+ | example: wxSecurityWizard will be the class name | ||
+ | |||
+ | - should be derived from class wxDialog_Base | ||
+ | |||
+ | class wxSecurityWizard : public wxDialog_Base | ||
+ | { | ||
+ | ....... | ||
+ | } | ||
− | + | Generic methods from wxDialog_Base that can/should be overrided in wxSecurityWizard: | |
− | + | // load data from external object, called after create | |
− | + | // by default calls Gui_Refresh | |
− | + | virtual bool Gui_DataLoad(CallBackData *pCallBackData); | |
− | + | ||
− | + | // save data to external object | |
− | + | // not called by default | |
− | * | + | virtual bool Gui_DataSave(CallBackData *pCallBackData); |
+ | // this should be used when the data from the dialog | ||
+ | // needs to be transfered to Orbiter | ||
− | + | // GUI refresh related code should be implemented here | |
− | + | // by default set full-screen or update position | |
− | * | + | virtual bool Gui_Refresh(CallBackData *pCallBackData); |
− | + | -- Other methods from wxDialog_Base -- | |
− | + | This function should always be called if the position comes from Orbiter, | |
+ | from a PositionCallBackData derived class. | ||
+ | void Update_Position_FullScreen(const int x, const int y, const int width, const int height, bool bShowFullScreen); | ||
+ | // if bShowFullScreen is true, the dialog is created full-screen | ||
+ | // otherwise, his position is changed | ||
+ | // if the dialog is already in the desired state, then wx functions for full-screen, or SetSize will not be called | ||
== Original Document == | == Original Document == | ||
http://svn.plutohome.com/pluto/trunk/src/Orbiter/wxAppMain/WX_PLUTO.txt | http://svn.plutohome.com/pluto/trunk/src/Orbiter/wxAppMain/WX_PLUTO.txt |
Revision as of 14:40, 2 May 2006
This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto. |
Contents
wxWidgets integration with Pluto
wxWidgets must be compiled with: --with-gtk=2 --enable-monolithic --with-sdl --with-opengl
For debug builds, add --enable-debug
sdl: needed by Orbiter opengl: needed by Orbiter
Required debian-pluto packages
Release executables: libwxgtk2.6-0 Debug executables, linked with debug version of the wx library: libwxgtk2.6-dbg
wxWidgets integration with Orbiter
Now, only Linux port of Orbiter uses wxWidgets
A new directory, Orbiter/wxAppMain, was created, which contains only wx-related files All *.cpp and *.h files added in this directory are automatically used by the Makefile in Orbiter
Read the following link "Integrating custom controls in Orbiter" http://10.0.0.175/wiki/index.php/Integrating_custom_controls_in_Orbiter which will explain how to use the wx dialogs, and control them
Creating a new wxWidgets dialog to be used in Orbiter
example: wxSecurityWizard will be the class name
- should be derived from class wxDialog_Base
class wxSecurityWizard : public wxDialog_Base { ....... }
Generic methods from wxDialog_Base that can/should be overrided in wxSecurityWizard:
// load data from external object, called after create // by default calls Gui_Refresh virtual bool Gui_DataLoad(CallBackData *pCallBackData);
// save data to external object // not called by default virtual bool Gui_DataSave(CallBackData *pCallBackData); // this should be used when the data from the dialog // needs to be transfered to Orbiter
// GUI refresh related code should be implemented here // by default set full-screen or update position virtual bool Gui_Refresh(CallBackData *pCallBackData);
-- Other methods from wxDialog_Base --
This function should always be called if the position comes from Orbiter, from a PositionCallBackData derived class.
void Update_Position_FullScreen(const int x, const int y, const int width, const int height, bool bShowFullScreen); // if bShowFullScreen is true, the dialog is created full-screen // otherwise, his position is changed // if the dialog is already in the desired state, then wx functions for full-screen, or SetSize will not be called
Original Document
http://svn.plutohome.com/pluto/trunk/src/Orbiter/wxAppMain/WX_PLUTO.txt