summaryrefslogtreecommitdiff
path: root/libopie/ocolorbutton.cpp
Side-by-side diff
Diffstat (limited to 'libopie/ocolorbutton.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ocolorbutton.cpp45
1 files changed, 33 insertions, 12 deletions
diff --git a/libopie/ocolorbutton.cpp b/libopie/ocolorbutton.cpp
index ddb6c4f..113a77a 100644
--- a/libopie/ocolorbutton.cpp
+++ b/libopie/ocolorbutton.cpp
@@ -35,10 +35,18 @@
#include <qpe/resource.h>
-class OColorButtonPrivate {
-public:
- QPopupMenu *m_menu;
- QColor m_color;
+struct OColorButtonPrivate {
+ QPopupMenu *m_menu;
+ QColor m_color;
};
+
+/**
+ * This concstructs a Color Button with @param color as the start color
+ * It'll use a OColorPopupMenu internally
+ *
+ * @param parent The parent of the Color Button
+ * @param color The color from where to start on
+ * @param name @see QObject
+ */
OColorButton::OColorButton ( QWidget *parent, const QColor &color, const char *name )
: QPushButton ( parent, name )
@@ -46,5 +54,5 @@ OColorButton::OColorButton ( QWidget *parent, const QColor &color, const char *n
d = new OColorButtonPrivate;
- d-> m_menu = new ColorPopupMenu ( color, 0, 0 );
+ d-> m_menu = new OColorPopupMenu ( color, 0, 0 );
setPopup ( d-> m_menu );
// setPopupDelay ( 0 );
@@ -58,4 +66,7 @@ OColorButton::OColorButton ( QWidget *parent, const QColor &color, const char *n
}
+/**
+ * This destructs the object
+ */
OColorButton::~OColorButton ( )
{
@@ -63,4 +74,7 @@ OColorButton::~OColorButton ( )
}
+/**
+ * @return Returns the current color of the button
+ */
QColor OColorButton::color ( ) const
{
@@ -68,4 +82,8 @@ QColor OColorButton::color ( ) const
}
+/**
+ * This method sets the color of the button
+ * @param c The color to be set.
+ */
void OColorButton::setColor ( const QColor &c )
{
@@ -73,20 +91,23 @@ void OColorButton::setColor ( const QColor &c )
}
+/**
+ * @internal
+ */
void OColorButton::updateColor ( const QColor &c )
{
d-> m_color = c;
-
+
QImage img ( 16, 16, 32 );
img. fill ( 0 );
-
+
int r, g, b;
c. rgb ( &r, &g, &b );
-
+
int w = img. width ( );
int h = img. height ( );
-
+
int dx = w * 20 / 100; // 15%
int dy = h * 20 / 100;
-
+
for ( int y = 0; y < h; y++ ) {
for ( int x = 0; x < w; x++ ) {
@@ -101,5 +122,5 @@ void OColorButton::updateColor ( const QColor &c )
else if ( y >= h - dy )
alpha *= ( double ( h - y ) / dy );
-
+
int a = int ( alpha * 255.0 );
if ( a < 0 )
@@ -115,5 +136,5 @@ void OColorButton::updateColor ( const QColor &c )
QPixmap pix;
pix. convertFromImage ( img );
- setPixmap ( pix );
+ setPixmap ( pix );
emit colorSelected ( c );