lyx_mirror/src/frontends/gnome/README

61 lines
1.8 KiB
Plaintext
Raw Normal View History

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.