summaryrefslogtreecommitdiffstats
path: root/src/libs/widgets/imageplugins/imageguidewidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/widgets/imageplugins/imageguidewidget.h')
-rw-r--r--src/libs/widgets/imageplugins/imageguidewidget.h132
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 */