Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

gimp::basewidget(3) [redhat man page]

basewidget(3)						User Contributed Perl Documentation					     basewidget(3)

NAME
Gimp::basewidget - pragma to declare the superclass of a gtk widget SYNOPSIS
use Gimp::basewidget 'superclass'; e.g. use Gimp::basewidget Gtk::Button; DESCRIPTION
This pragma can (but does not need to) be used to declare the current package as a childclass of an existing Gtk widget class. The only "import tag" must be the name of the existing superclass. The module automatically registers a subtype, calls a special callback at gtk initialization time and provides default implementations for some common methods (the list might grow in the future to enhance settor/gettor functionality). The following methods are provided. All of them can be overriden in your package. new A simple generic new constructor is provided. It will simply call "Gtk::Object::new" with all the provided arguments. GTK_INIT This callback is called as early as possible after gtk was initialized, but not before. This can be used to register additional sub- types, argument types etc. It is similar to GTK_CLASS_INIT. GTK_CLASS_INIT Unlike the standard Gtk-callback of the same name, this method can be omitted in your package (while still being a valid Widget). GTK_OBJECT_INIT This callback can also be omitted, but this rarely makes sense ;) BUGS
This was a pain to implement, you will not believe this when looking at the code, though. AUTHOR
Marc Lehmann <pcg@goof.com>. SEE ALSO
perl(1), Gimp, Gimp::UI, Gtk. perl v5.8.0 2001-12-06 basewidget(3)

Check Out this Related Man Page

OO(1)							User Contributed Perl Documentation						     OO(1)

NAME
Gimp::OO - Pseudo-OO for Gimp functions. SYNOPSIS
use Gimp; # Gimp::OO is now part of Gimp. DESCRIPTION
As you might have noticed, you can sort most gimp functions fall into three groups, depending on the name-prefix: "gimp_", "plug_in_", "extension_" etc.. Whats more, there are functions groups like "gimp_image_" or "gimp_selection_", operating on a common object, Images and Selection in this case. If you only had the plain syntax, your scripts would quickly aquire the "vertical gimp syndrome": gimp_palette_set_foreground(...) gimp_layer_new(...) gimp_palette_set_background(...) gimp_image_add_layer(...) etc. Of course, your fingers will suffer from severe injuries as well. A solution to this situation is to use OO-syntax. Gimp plays some (very) dirty tricks and provides a number of classes, like "Gimp::Image" and "Gimp::Palette" that allow shorter identifiers to be used (all these appear with the "Gimp::" prefix as well as without, i.e. "Gimp::Palette" is the same class as "Palette"). If you call a method, "Gimp" tries to find a gimp function by prepending a number of prefixes until it finds a valid function: $image = Gimp->image_new(...); # calls gimp_image_new(...) $image = Image->new(...); # calls gimp_image_new as well $image = new Image(...); # the same in green Palette->set_foreground(...) # calls gimp_palette_set_foreground(..) Return values from functions are automatically blessed (through The Magic Autobless feature ;) to their corresponding classes, i.e. $image = new Image(...); # $image is now blessed to Gimp::Image $image->height; # calls gimp_image_height($image) $image->flatten; # likewise gimp_flatten($image) $image->histogram(...); # calls gimp_histogram($image,...), since # gimp_image_histogram does not exist The class argument ($image in the above examples) is prepended to the argument list. Another shortcut: many functions want a (redundant) image argument, like $image->shear ($layer, ...) Since all you want is to shear the $layer, not the $image, this is confusing as well. In cases like this, Gimp allows you to write: $layer->shear (...) And automatically infers the additional IMAGE-type argument. As the (currently) last goodie, if the first argument is of type INT32, its name is "run_mode" and there are no other ambiguties, you can omit it, i.e. these three calls are equivalent: plug_in_gauss_rle (RUN_NONINTERACTIVE, $image, $layer, 8, 1, 1); plug_in_gauss_rle ($image, $layer, 8, 1, 1); plug_in_gauss_rle ($layer, 8, 1, 1); You can call all sorts of sensible and not-so-sensible functions, so this feature can be abused: patterns_list Image; # will call gimp_patterns_list quit Plugin; # will quit the Gimp, not an Plugin. there is no image involved here whatsoever... AVAILABLE CLASSES
The following classes (with and without Gimp::) are available. The prefixes that are checked are shown as well (the null prefix "" is implicit). Gimp (there is no Gimp::Gimp, only Gimp::) gimp_ Layer gimp_layer_ gimp_drawable_ gimp_floating_sel_ gimp_image_ gimp_ plug_in_ perl_fu_ Image gimp_image_ gimp_drawable_ gimp_ plug_in_ perl_fu_ Drawable gimp_drawable_ gimp_layer_ gimp_image_ gimp_ plug_in_ perl_fu_ Selection gimp_selection_ Channel gimp_channel_ gimp_drawable_ gimp_selection_ gimp_image_ gimp_ plug_in_ perl_fu_ Display gimp_display_ gimp_ Palette gimp_palette_ Plugin plug_in_ Gradients gimp_gradients_ Edit gimp_edit_ Progress gimp_progress_ Region (none except the implicit null prefix) Tile gimp_tile_ PixelRgn gimp_pixel_rgn_ GDrawable gimp_gdrawable_ Brushes gimp_brushes_ Patterns gimp_patterns_ AUTHOR
Marc Lehmann <pcg@goof.com> SEE ALSO
perl(1), Gimp. perl v5.8.0 1999-08-02 OO(1)
Man Page