Module that provides an object oriented abstraction to pygtk and libglade.
Copyright (C) 2004 Sandino Flores Moreno
Bind the domain represented by app_name to the locale directory
locale_dir.
It has the effect of loading translations,
enabling applications for different languages.
I18nGladeApp is an example of
internationalization.
Load a glade file specified by path, using root as
the name of the root widget and domain as the domain for
translations.
If it receives extra named arguments (argname=value), then they
are used as attributes of the instance.
glade_app = SimpleGladeApp("ui.glade", foo="some value", bar="another value")
Method called when the user interface is loaded and ready to be used.
At this moment, the widgets are loaded and can be refered as self.widget_name
It does not matter if the widget has prefixes or not.
It uses the methods of callbacks_proxy as callbacks.
The callbacks are specified by using the properties dialog in
glade (or any other gui designer like gazpacho).
See image 1
Methods of classes inheriting from SimpleGladeApp are used as
callbacks automatically.
FirstGladeApp is a very simple example
of using callbacks as methods.
It is internally used to normalize the name of the widgets.
It means a widget named foo:vbox-dialog in glade
is refered self.vbox_dialog in the code.
It also sets a data "prefixes" with the list of
prefixes a widget has for each widget.
By using a gui designer (glade, gazpacho, etc)
widgets can have a prefix in theirs names
like foo:entry1 or foo:label3
It means entry1 and label3 has a prefix action named foo.
See image 2
Then, prefix_actions_proxy must have a method named
prefix_foo which is called everytime a widget with prefix
foo is found, using the found widget as argument.
PrefixGladeApp is an example of prefix actions
which uses them for validating input.
PrefixDBGladeApp is another example of prefix actions
which uses them for binding a database to a window.
Generic handler for creating custom widgets, internally used to
enable custom widgets (custom widgets of glade).
The custom widgets have a creation function specified in design time.
See image 3
Those creation functions are always called with str1,str2,int1,int2 as
arguments, that are values specified in design time.
Methods of classes inheriting from SimpleGladeApp are used as
creation functions automatically.
If a custom widget has create_foo as creation function, then the
method named create_foo is called with str1,str2,int1,int2
as arguments.
MozEmbedGladeApp is a very simple example
that uses a custom widget for displaying html (using gtkmozembed).
TournamentGladeApp is another example of custom
widgets very useful when playing videogames with friends.
BonoboMozillaGladeApp is a more complex example
of custom widgets that uses them for displaying html (using gtkmozembed)
and pdf documents (using bonobo).
Predefined callback.
The widget is showed.
Equivalent to widget.show()
SignalGladeApp is an example that uses
gtk_widget_show to make a widget visible with no code.
Predefined callback.
The widget is hidden.
Equivalent to widget.hide()
Predefined callback.
The widget grabs the focus.
Equivalent to widget.grab_focus()
Predefined callback.
The widget is destroyed.
Equivalent to widget.destroy()
ParentChildGladeApp is an example that uses
gtk_widget_destroy for destroying a dialog when pressing
a button of it.
Predefined callback.
The default widget of the window is activated.
Equivalent to window.activate_default()
Predefined callback.
Equivalent to return True in a callback.
Useful for stopping propagation of signals.
PrefixDBGladeApp is an example that uses
gtk_true to make an horizontal scale unmodificable.
Predefined callback.
Equivalent to return False in a callback.
Predefined callback.
Equivalent to self.quit()
Starts the main loop of processing events.
The default implementation calls gtk.main()
Useful for applications that needs a non gtk main loop.
For example, applications based on gstreamer needs to override
this method with gst.main()
Do not directly call this method in your programs.
Use the method run() instead.
GstPlayerGladeApp is an example of
overriding main() and quit()
Quit processing events.
The default implementation calls gtk.main_quit()
Useful for applications that needs a non gtk main loop.
For example, applications based on gstreamer needs to override
this method with gst.main_quit()
GstPlayerGladeApp is an example of
overriding main() and quit()
Starts the main loop of processing events checking for Control-C.
The default implementation checks wheter a Control-C is pressed,
then calls on_keyboard_interrupt().
Use this method for starting programs.
This method must be called just once per program, because
gtk programs use an infinite loop for processing events.
This method is called by the default implementation of run() after a program is finished by pressing Control-C.