diff options
Diffstat (limited to 'src/libs/widgets/imageplugins/imageguidewidget.h')
| -rw-r--r-- | src/libs/widgets/imageplugins/imageguidewidget.h | 132 | 
1 files changed, 132 insertions, 0 deletions
| diff --git a/src/libs/widgets/imageplugins/imageguidewidget.h b/src/libs/widgets/imageplugins/imageguidewidget.h new file mode 100644 index 00000000..48d6d246 --- /dev/null +++ b/src/libs/widgets/imageplugins/imageguidewidget.h @@ -0,0 +1,132 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date        : 2004-08-20 + * Description : a widget to display an image with guides + * + * Copyright (C) 2004-2008 Gilles Caulier <caulier dot gilles at gmail dot com> + * + * This program 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, or (at your option) + * any later version. + * + * This program 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. + * + * ============================================================ */ + +#ifndef IMAGEGUIDEWIDGET_H +#define IMAGEGUIDEWIDGET_H + +// TQt includes. + +#include <tqwidget.h> +#include <tqpoint.h> +#include <tqcolor.h> + +// Local includes. + +#include "dcolor.h" +#include "digikam_export.h" + +class TQPixmap; + +namespace Digikam +{ + +class DColor; +class ImageIface; +class ImageGuideWidgetPriv; + +class DIGIKAM_EXPORT ImageGuideWidget : public TQWidget +{ +TQ_OBJECT + + +public: + +    enum GuideToolMode +    { +        HVGuideMode=0, +        PickColorMode +    }; + +    enum RenderingPreviewMode +    { +        PreviewOriginalImage=0,     // Original image only. +        PreviewBothImagesHorz,      // Horizontal with original and target duplicated. +        PreviewBothImagesVert,      // Vertical with original and target duplicated. +        PreviewBothImagesHorzCont,  // Horizontal with original and target in contiguous. +        PreviewBothImagesVertCont,  // Vertical with original and target in contiguous. +        PreviewTargetImage,         // Target image only. +        PreviewToggleOnMouseOver,   // Original image if mouse is over image area, else target image. +        NoPreviewMode               // Target image only without information displayed. +    }; + +    enum ColorPointSrc +    { +        OriginalImage=0, +        PreviewImage, +        TargetPreviewImage +    }; + +public: + +    ImageGuideWidget(int w, int h, TQWidget *parent=0, +                     bool spotVisible=true, int guideMode=HVGuideMode, +                     const TQColor& guideColor=TQt::red, int guideSize=1, +                     bool blink=false, bool useImageSelection=false); +    ~ImageGuideWidget(); + +    ImageIface* imageIface(); + +    TQPoint getSpotPosition(); +    DColor getSpotColor(int getColorFrom); +    void   setSpotVisible(bool spotVisible, bool blink=false); +    int    getRenderingPreviewMode(); +    void   resetSpotPosition(); +    void   updatePreview(); + +public slots: + +    void slotChangeGuideColor(const TQColor &color); +    void slotChangeGuideSize(int size); +    void slotChangeRenderingPreviewMode(int mode); +    void slotToggleUnderExposure(bool); +    void slotToggleOverExposure(bool); + +signals: + +    void spotPositionChangedFromOriginal(const Digikam::DColor &color, const TQPoint &position); +    void spotPositionChangedFromTarget(const Digikam::DColor &color, const TQPoint &position); +    void signalResized(); + +protected: + +    void paintEvent(TQPaintEvent*); +    void resizeEvent(TQResizeEvent*); +    void timerEvent(TQTimerEvent*); +    void mousePressEvent(TQMouseEvent*); +    void mouseReleaseEvent(TQMouseEvent*); +    void mouseMoveEvent(TQMouseEvent*); +    void enterEvent(TQEvent*); +    void leaveEvent(TQEvent*); + +private: + +    void updatePixmap(); + +private: + +    ImageGuideWidgetPriv *d; +}; + +}  // NameSpace Digikam + +#endif /* IMAGEGUIDEWIDGET_H */ | 
