//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module kdefx  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


class KImageEffect
{
%TypeHeaderCode
#include <kimageeffect.h>
%End


public:

    enum GradientType
    {
        VerticalGradient, 
        HorizontalGradient, 
        DiagonalGradient, 
        CrossDiagonalGradient, 
        PyramidGradient, 
        RectangleGradient, 
        PipeCrossGradient, 
        EllipticGradient
    };


    enum RGBComponent
    {
        Red, 
        Green, 
        Blue, 
        Gray, 
        All
    };


    enum Lighting
    {
        NorthLite, 
        NWLite, 
        WestLite, 
        SWLite, 
        SouthLite, 
        SELite, 
        EastLite, 
        NELite
    };


    enum ModulationType
    {
        Intensity, 
        Saturation, 
        HueShift, 
        Contrast
    };


    enum NoiseType
    {
        UniformNoise, 
        GaussianNoise, 
        MultiplicativeGaussianNoise, 
        ImpulseNoise, 
        LaplacianNoise, 
        PoissonNoise
    };


    enum RotateDirection
    {
        Rotate90, 
        Rotate180, 
        Rotate270
    };


%If ( KDE_3_3_0 -  )

    enum BumpmapType
    {
        Linear, 
        Spherical, 
        Sinuosidal
    };

%End

    static QImage        gradient (const QSize&, const QColor&, const QColor&, KImageEffect::GradientType, int = 3);
    static QImage        unbalancedGradient (const QSize&, const QColor&, const QColor&, KImageEffect::GradientType, int = 100, int = 100, int = 3);
    static QImage&       blend (const QColor&, QImage&, float);
    static QImage&       blend (QImage&, QImage&, float);
    static QImage&       blend (QImage&, float, const QColor&, KImageEffect::GradientType, bool = 0);
    static QImage&       blend (QImage&, QImage&, KImageEffect::GradientType, int = 100, int = 100);
    static QImage&       blend (QImage&, QImage&, QImage&, KImageEffect::RGBComponent);
    static bool          blend (const QImage&, const QImage&, QImage&);
    static bool          blend (int& /In, Out/, int& /In, Out/, const QImage&, const QImage&, QImage&);
    static bool          blendOnLower (int, int, const QImage&, const QImage&);

%If ( KDE_3_2_0 -  )
    static void          blendOnLower (const QImage&, const QPoint&, QImage&, const QRect&);
    static void          blendOnLower (const QImage&, const QPoint&, QImage&, const QRect&, float);

    enum Disposition
    {
        NoImage, 
        Centered, 
        Tiled, 
        CenterTiled, 
        CenteredMaxpect, 
        TiledMaxpect, 
        Scaled, 
        CenteredAutoFit
    };

    static QRect         computeDestinationRect (const QSize&, KImageEffect::Disposition, QImage&);
    static void          blendOnLower (QImage&, QImage&, KImageEffect::Disposition, float);
%End

    static QImage&       channelIntensity (QImage&, float, KImageEffect::RGBComponent);
    static QImage&       fade (QImage&, float, const QColor&);
    static QImage&       flatten (QImage&, const QColor&, const QColor&, int = 0);
    static QImage&       hash (QImage&, KImageEffect::Lighting = NorthLite , uint = 0);
    static QImage&       intensity (QImage&, float);
    static QImage&       modulate (QImage&, QImage&, bool, KImageEffect::ModulationType, int, KImageEffect::RGBComponent);
    static QImage&       toGray (QImage&, bool = 0);
    static QImage&       desaturate (QImage&, float = 0.3);
    static QImage&       contrast (QImage&, int);
//ig     static QImage&       dither (QImage&, const QColor*, int);
    static QImage&       selectedImage (QImage&, const QColor&);
    static void          contrastHSV (QImage&, bool = 1);
    static void          normalize (QImage&);
    static void          equalize (QImage&);
    static void          threshold (QImage&, uint = 128);
    static void          solarize (QImage&, double = 50.0);

%If ( KDE_3_2_0 -  )
    static QImage        emboss (QImage&, double, double);
%End

    static QImage        emboss (QImage&);
    static QImage        despeckle (QImage&);

%If ( KDE_3_2_0 -  )
    static QImage        charcoal (QImage&, double, double);
%End

    static QImage        charcoal (QImage&, double = 50.0);
    static QImage        rotate (QImage&, KImageEffect::RotateDirection);
    static QImage        sample (QImage&, int, int);
    static QImage        addNoise (QImage&, KImageEffect::NoiseType = GaussianNoise );

%If ( KDE_3_2_0 -  )
    static QImage        blur (QImage&, double, double);
%End

    static QImage        blur (QImage&, double = 50.0);
    static QImage        edge (QImage&, double = 50.0);
    static QImage        implode (QImage&, double = 30.0, uint = -1);

%If ( KDE_3_2_0 -  )
    static QImage        oilPaintConvolve (QImage&, double);
%End

    static QImage        oilPaint (QImage&, int = 3);

%If ( KDE_3_2_0 -  )
    static QImage        sharpen (QImage&, double, double);
%End

    static QImage        sharpen (QImage&, double = 30.0);
    static QImage        spread (QImage&, uint = 3);
    static QImage        shade (QImage&, bool = 1, double = 30.0, double = 30.0);
    static QImage        swirl (QImage&, double = 50.0, uint = -1);
    static QImage        wave (QImage&, double = 25.0, double = 150.0, uint = -1);

%If ( KDE_3_3_0 -  )
    static QImage        bumpmap (QImage&, QImage&, double, double, int, int, int, int, int, bool, bool, KImageEffect::BumpmapType, bool);
%End


};  // class KImageEffect

