mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-14 06:57:01 +00:00
GNOME FRONT END =============== Firstly, this stuff is pre-alpha. I don't use it so you shouldn't either. At all, no exceptions :). Secondly I'm no c++ guru, I'm learning as I go along so if something looks stupid, there's a good chance it is. Adding Dialogs -------------- The GNOME frontend of LyX uses libglade to draw the dialogs. The base (GnomeBase.C) class handles the drawing and activating of the Dialogs, for an example of contructing a simple dialog see GUrl.[Ch] FormUrl::FormUrl(ControlUrl & c) : FormCB<ControlUrl>(c, "FormUrl") {} To manipulate a widget you extract a pointer using getWidget(string). If you look at FormUrl you'll see that there are a number of helper functions at the bottom of the .C file. These are automatically generated by accessors.py For accessors.py to work glade files now must adhere to the following conventions: * The root widget and the file should be named after the form (i.e FormTabularCreate & FormTabularCreate.glade) * Functional widgets, those actually used rather than the filler widgets like Gtk::HBox etc, should have an r_ as the first two characters of their name. (see below) To make the build system include your new dialog edit Makefile.am as follows: 1) make clean in src/frontends/gnome/ 2) Add GX.C and GX.h to libgnome_la_SOURCES 3) Remove FormX.lo and form_x.lo (if applicable) from xforms_objects 4) make clean && make in src/frontends/ 5) make in src/ Using accessors.py ------------------ Usage: python accessors.py glade_ui_file DialogClass e.g python accessors.py FormTabularCreate.glade GTabularCreate Accessors.py will write the helper functions to DialogClass.C_gen and the function declarations to DialogClass.g_gen. To ensure the widgets you're interested in are made available using this method, prefix the widgets name with r_ when you build the dialog in Glade.