Source: kiconeffect.h


Annotated List
Files
Globals
Hierarchy
Index
/* vi: ts=8 sts=4 sw=4
 *
 * $Id: kiconeffect_h.html 132191 2002-01-17 21:32:13Z dfaure $
 *
 * This file is part of the KDE project, module kdecore.
 * Copyright (C) 2000 Geert Jansen 
 * with minor additions and based on ideas from
 * Torsten Rahn 
 *
 * This is free software; it comes under the GNU Library General
 * Public License, version 2. See the file "COPYING.LIB" for the
 * exact licensing terms.
 */

#ifndef __KIconEffect_h_Included__
#define __KIconEffect_h_Included__

#include 
#include 
#include 
#include 

class QWidget;

class KIconEffectPrivate;

/**
 * Apply effects to icons.
 */
class KIconEffect
{
public:
    KIconEffect();
    ~KIconEffect();

    enum Effects { NoEffect, ToGray, Colorize, ToGamma, DeSaturate, LastEffect };

    /**
     * Reread configuration.
     */
    void init();

    /**
     * @returns true if an effect is configured for the given @p group
     * in @p state, otherwise false.
     */
    bool hasEffect(int group, int state) const;
    
    /**
     * Returns a fingerprint for the effect selected by
     * [@p group, @p state]. This is usefull for caching.
     */
     QString fingerprint(int group, int state);

    /**
     * Apply an effect to an image. The effect to apply depends on the
     * @p group and @p state parameters, and is configured by the user.
     * @param src The image.
     * @param group The group for the icon.
     * @param state The icon's state.
     * @return An image with the effect applied.
     */
    QImage apply(QImage src, int group, int state);

    /**
     * Apply an effect to an image.
     * @param src The image.
     * @param effect The effect to apply, one of @ref #KIconEffect::Effects.
     * @param value Strength of the effect. 0 <= @p value <= 1.
     * @param color Color parameter for effects that need one.
     * @param trans Add Transparency if trans = true.
     * @return An image with the effect applied.
     */
    QImage apply(QImage src, int effect, float value, const QColor rgb, bool trans);

    /**
     * Apply an effect to a pixmap.
     */
    QPixmap apply(QPixmap src, int group, int state);

    /**
     * Apply an effect to a pixmap.
     */
    QPixmap apply(QPixmap src, int effect, float value, const QColor rgb, bool trans);

    /**
     * Returns an image twice as large, consisting of 2x2 pixels.
     */
    QImage doublePixels(QImage src);

    /**
     * Provide visual feedback to show activation of an icon on a widget.
     *
     * Not strictly an 'icon effect', but in practice that's what it looks
     * like.
     */
    static void visualActivate(QWidget *, QRect);

    static void toGray(QImage &image, float value);
    static void colorize(QImage &image, const QColor &col, float value);
    static void deSaturate(QImage &image, float value);
    static void toGamma(QImage &image, float value);
    static void semiTransparent(QImage &image);
    static void semiTransparent(QPixmap &pixmap);
    static void overlay(QImage &src, QImage &overlay);

private:
    int mEffect[6][3];
    float mValue[6][3];
    QColor mColor[6][3];
    bool mTrans[6][3];
    KIconEffectPrivate *d;
};

#endif

Generated by: dfaure on kde.faure.org on Thu Jan 17 22:15:01 2002, using kdoc 2.0a53.