Gimp::OO
OO(O)          User Contributed Perl Documentation          OO(O)



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 func-
       tions fall into three groups, depending on the name-pre-
       fix: "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 corre-
       sponding 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 argu-
       ment.

       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 avail-
       able. 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(l), Gimp.



perl v5.6.1                 1999-08-03                      OO(O)