Gtk2::Ex::FormFactory::DialogButtons − Standard Ok, Apply, Cancel Buttons


Gtk2::Ex::FormFactory::DialogButtons−>new (
clicked_hook_before => CODEREF,
clicked_hook_after => CODEREF,
Gtk2::Ex::FormFactory::Container attributes
Gtk2::Ex::FormFactory::Widget attributes


This class implements a typical Ok, Apply, Cancel buttonbox in a Gtk2::Ex::FormFactory framework.

If you associate an application object attribute the value needs to be a hash which may contain the keys ’ok’, ’apply’ and ’cancel’ to control the activity of the correspondent buttons. Wheter inactive buttons should be render insensitive or invisible is controlled by the Gtk2::Ex::FormFactory::Widget attribute inactive.

By default the following methods of the associated Gtk2::Ex::FormFactory instance are triggered:

Ok Gtk2::Ex::FormFactory−>ok
Cancel Gtk2::Ex::FormFactory−>cancel
Apply Gtk2::Ex::FormFactory−>apply


No Cancel and Apply buttons are generated if the associated Gtk2::Ex::FormFactory has the sync attribute set. A synchronized FormFactory applies all changes immediately to the underlying objects, so there is no easy way of implementing the Apply and Cancel buttons.

You can implement these by your own e.g. by registering a copy of your object to Gtk2::Ex::FormFactory::Context and hook into the button clicks using the clicked_hook_before attribute described beyond.


+−−− Gtk2::Ex::FormFactory::DialogButtons


Attributes are handled through the common get_ATTR(), set_ATTR() style accessors, but they are mostly passed once to the object constructor and must not be altered after the associated FormFactory was built.
= CODEREF ("ok"|"apply"|"cancel")

Use this callback to hook into the clicked signal handler of the buttons. Argument is the name of the button actually clicked ("ok", "apply" or "cancel"). If the callback returns TRUE, Gtk2::Ex::FormFactory’s default handler for the button is called afterwards. Return FALSE to prevent calling the default handler.

clicked_hook_after = CODEREF ("ok"|"apply"|"cancel")

This callback is called after the default handler. This is useful if you want to exit your program cleanly if your main dialog was closed. First Gtk2::Ex::FormFactory closes the dialog window for you, doing all necessary cleanup stuff. Afterward you simply call Gtk2−>main_quit to exit the program.

The callback’s return value doesn’t matter.

For more attributes refer to Gtk2::Ex::FormFactory::Widget.


Jörn Reder <joern at zyn dot de>


Copyright 2004−2006 by Jörn Reder.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place − Suite 330, Boston, MA 02111−1307 USA.


Hey! The above document had some coding errors, which are explained below:
Around line 213:

Non-ASCII character seen before =encoding in ’Jörn’. Assuming CP1252