-rw-r--r-- | libopie2/opieui/oselector.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libopie2/opieui/oselector.h b/libopie2/opieui/oselector.h index f832239..fe75a46 100644 --- a/libopie2/opieui/oselector.h +++ b/libopie2/opieui/oselector.h @@ -1,157 +1,160 @@ /* This file is part of the KDE libraries Copyright (C) 1997 Martin Jones (mjones@kde.org) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ //----------------------------------------------------------------------------- // Selector widgets for KDE Color Selector, but probably useful for other // stuff also. #ifndef __OSELECT_H__ #define __OSELECT_H__ #include <qwidget.h> #include <qrangecontrol.h> #include <qpixmap.h> + +namespace Opie { +namespace Ui { /** * OXYSelector is the base class for other widgets which * provides the ability to choose from a two-dimensional * range of values. The currently chosen value is indicated * by a cross. An example is the @ref OHSSelector which * allows to choose from a range of colors, and which is * used in OColorDialog. * * A custom drawing routine for the widget surface has * to be provided by the subclass. */ class OXYSelector : public QWidget { Q_OBJECT public: /** * Constructs a two-dimensional selector widget which * has a value range of [0..100] in both directions. */ OXYSelector( QWidget *parent=0, const char *name=0 ); /** * Destructs the widget. */ ~OXYSelector(); /** * Sets the current values in horizontal and * vertical direction. */ void setValues( int xPos, int yPos ); /** * Sets the range of possible values. */ void setRange( int minX, int minY, int maxX, int maxY ); /** * @return the current value in horizontal direction. */ int xValue() const { return xPos; } /** * @return the current value in vertical direction. */ int yValue() const { return yPos; } /** * @return the rectangle on which subclasses should draw. */ QRect contentsRect() const; signals: /** * This signal is emitted whenever the user chooses a value, * e.g. by clicking with the mouse on the widget. */ void valueChanged( int x, int y ); protected: /** * Override this function to draw the contents of the widget. * The default implementation does nothing. * * Draw within @ref contentsRect() only. */ virtual void drawContents( QPainter * ); /** * Override this function to draw the cursor which * indicates the currently selected value pair. */ virtual void drawCursor( QPainter *p, int xp, int yp ); /** * @reimplemented */ virtual void paintEvent( QPaintEvent *e ); /** * @reimplemented */ virtual void mousePressEvent( QMouseEvent *e ); /** * @reimplemented */ virtual void mouseMoveEvent( QMouseEvent *e ); /** * @reimplemented */ virtual void wheelEvent( QWheelEvent * ); /** * Converts a pixel position to its corresponding values. */ void valuesFromPosition( int x, int y, int& xVal, int& yVal ) const; private: void setPosition( int xp, int yp ); int px; int py; int xPos; int yPos; int minX; int maxX; int minY; int maxY; QPixmap store; private: class OXYSelectorPrivate; OXYSelectorPrivate *d; }; /** * OSelector is the base class for other widgets which * provides the ability to choose from a one-dimensional * range of values. An example is the @ref OGradientSelector * which allows to choose from a range of colors. * * A custom drawing routine for the widget surface has * to be provided by the subclass. */ class OSelector : public QWidget, public QRangeControl { Q_OBJECT Q_PROPERTY( int value READ value WRITE setValue ) Q_PROPERTY( int minValue READ minValue WRITE setMinValue ) Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue ) public: /** * Constructs a horizontal one-dimensional selection widget. @@ -387,132 +390,134 @@ private: * @version $Id$ */ class OHSSelector : public OXYSelector { Q_OBJECT public: /** * Constructs a hue/saturation selection widget. */ OHSSelector( QWidget *parent=0, const char *name=0 ); protected: /** * Draws the contents of the widget on a pixmap, * which is used for buffering. */ virtual void drawPalette( QPixmap *pixmap ); /** * @reimplemented */ virtual void resizeEvent( QResizeEvent * ); /** * Reimplemented from OXYSelector. This drawing is * buffered in a pixmap here. As real drawing * routine, drawPalette() is used. */ virtual void drawContents( QPainter *painter ); private: void updateContents(); QPixmap pixmap; private: class OHSSelectorPrivate; OHSSelectorPrivate *d; }; class OValueSelectorPrivate; /** * Widget for color value selection. * * @see OHSSelector, OColorDialog * @author Martin Jones (mjones@kde.org) * @version $Id$ */ class OValueSelector : public OSelector { Q_OBJECT public: /** * Constructs a widget for color selection. */ OValueSelector( QWidget *parent=0, const char *name=0 ); /** * Constructs a widget for color selection with a given orientation */ OValueSelector( Orientation o, QWidget *parent = 0, const char *name = 0 ); int hue() const { return _hue; } void setHue( int h ) { _hue = h; } int saturation() const { return _sat; } void setSaturation( int s ) { _sat = s; } void updateContents(); protected: /** * Draws the contents of the widget on a pixmap, * which is used for buffering. */ virtual void drawPalette( QPixmap *pixmap ); /** * @reimplemented */ virtual void resizeEvent( QResizeEvent * ); /** * Reimplemented from OSelector. The drawing is * buffered in a pixmap here. As real drawing * routine, drawPalette() is used. */ virtual void drawContents( QPainter *painter ); private: int _hue; int _sat; QPixmap pixmap; private: class OValueSelectorPrivate; OValueSelectorPrivate *d; }; class OColor : public QColor { public: OColor(); OColor( const OColor &col); OColor( const QColor &col); OColor& operator=( const OColor& col); bool operator==( const OColor& col) const; void setHsv(int _h, int _s, int _v); void setRgb(int _r, int _g, int _b); void rgb(int *_r, int *_g, int *_b) const; void hsv(int *_h, int *_s, int *_v) const; protected: int h; int s; int v; int r; int g; int b; private: class OColorPrivate; OColorPrivate *d; }; +} +} #endif // __OSELECT_H__ |