Before you start.
-1. You will need to install Glade version 3.8.4 --- ANY OTHER VERSION
-IS UNLIKELY TO WORK --- I know that 3.18.x does not! If your
-distro doesn't have this version, you will need to download it and
-build it from source.
+1. You will need to install Glade (but see the important note
+ about which version at the end of this document!
Having done the above, you should be able to edit an existing dialog
definition, thus:
- glade-3 src/ui/gui/descriptives.ui
+ glade src/ui/gui/descriptives.ui
You will probably get a lot of Gtk-Warnings/Criticals most of them
are harmless.
1. Define a new PsppireDialogAction Class
Create a new object class derived from PsppireDialogAction (note that
-PsppireDialogAction itself derives from GtkAction). It's probably
+PsppireDialogAction itself implements GAction). It's probably
best if you use an existing example as a template. The minimum you
require is:
// This function is called when the menuitem is activated.
// It is what pops up the dialog
static void
-psppire_dialog_action_foobar_activate (GtkAction *a)
+psppire_dialog_action_foobar_activate (GAction *a)
{
PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a);
PsppireDialogActionFoobar *act = PSPPIRE_DIALOG_ACTION_FOOBAR (a);
static void
psppire_dialog_action_foobar_class_init (PsppireDialogActionFoobarClass *class)
{
- GtkActionClass *action_class = GTK_ACTION_CLASS (class);
+ GActionClass *action_class = GTK_ACTION_CLASS (class);
action_class->activate = psppire_dialog_action_foobar_activate;
PSPPIRE_DIALOG_ACTION_CLASS (class)->generate_syntax = generate_syntax;
+Note! Currently (as of commit fe7682b3c3d36cf9ba3e867588e5b808af833262 )
+psppire is in a transitional phase. Our .ui files come in two mutually
+incompatible varieties. The older variety can be identified by a
+string similar to:
+
+ <requires lib="psppire" version="2054.17080"/>
+ <!-- interface-requires gtk+ 2.12 -->
+ <!-- interface-naming-policy project-wide -->
+
+To edit these files you will need to install Glade version 3.8.4 ---
+ANY OTHER VERSION IS UNLIKELY TO WORK --- I know that 3.18.x does
+not! If your distro doesn't have this version, you will need to
+download it and build it from source.
+
+
+The newer ones contain the string:
+
+<!-- Generated with glade 3.18.3 -->
+<interface>
+ <requires lib="gtk+" version="3.12"/>
+
+Like the string suggests Glade version 3.18.x or later will probably
+be ok for these files.
+
+Hopefully the older style .ui files will gradually be converted to new
+style ones.
+
+
That's about it, I think. Did I forget anything?