summaryrefslogtreecommitdiff
path: root/libopie2/opieui/oledbox.cpp
Side-by-side diff
Diffstat (limited to 'libopie2/opieui/oledbox.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/oledbox.cpp58
1 files changed, 41 insertions, 17 deletions
diff --git a/libopie2/opieui/oledbox.cpp b/libopie2/opieui/oledbox.cpp
index 52826f1..d18d4b6 100644
--- a/libopie2/opieui/oledbox.cpp
+++ b/libopie2/opieui/oledbox.cpp
@@ -1,24 +1,53 @@
-
-#include <qbitmap.h>
-#include <qpainter.h>
+/*
+                 This file is part of the Opie Project
+ =. (C) 2002-2005 the Opie Team <opie-devel@handhelds.org>
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. 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
+..}^=.=       =       ; 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.
+
+*/
#include "oledbox.h"
+/* QT */
+#include <qbitmap.h>
+#include <qpainter.h>
-#ifdef _QTE_IS_TOO_DUMB_TO_DRAW_AN_ARC
+namespace Opie {
+namespace Ui {
/* XPM */
static const char * ledborder_xpm[] = {
"16 16 11 1",
" c None",
". c #626562",
"+ c #7B7D7B",
"@ c #949594",
"# c #ACAEAC",
"$ c #CDCACD",
"% c #CDCECD",
"; c #E6E6E6",
"> c #FFFFFF",
", c #E6E2E6",
"' c #FFFAFF",
" .++@@# ",
@@ -28,49 +57,44 @@ static const char * ledborder_xpm[] = {
" ... %%; ",
".... ;;;;",
"++. ;>>",
"+++ >>>",
"@@@ >>>",
"@@# >>>",
"#### >>>>",
" #$$ >>> ",
" $$,,' >>>>> ",
" ,,,''>>>>>>> ",
" ,''>>>>>>> ",
" '>>>>> "};
QPixmap *OLedBox::s_border_pix = 0;
-#endif
-
-
OLedBox::OLedBox ( const QColor &col, QWidget *parent, const char *name ) : QWidget ( parent, name )
{
m_color = col;
m_on = false;
m_readonly = true;
m_pix [ 0 ] = m_pix [ 1 ] = 0;
setBackgroundMode ( PaletteBackground );
-#ifdef _QTE_IS_TOO_DUMB_TO_DRAW_AN_ARC
if ( !s_border_pix )
- s_border_pix = new QPixmap ( ledborder_xpm );
-#endif
+ s_border_pix = new QPixmap( ledborder_xpm );
}
OLedBox::~OLedBox ( )
{
delete m_pix [ 0 ];
delete m_pix [ 1 ];
}
QSize OLedBox::sizeHint ( ) const
{
return QSize ( 16, 16 );
}
bool OLedBox::isOn ( ) const
{
return m_on;
@@ -129,35 +153,33 @@ void OLedBox::resizeEvent ( QResizeEvent * )
void OLedBox::paintEvent ( QPaintEvent *e )
{
int ind = m_on ? 1 : 0;
if ( !m_pix [ ind ] ) {
m_pix [ ind ] = new QPixmap ( size ( ));
drawLed ( m_pix [ ind ], m_on ? m_color : m_color. dark ( 300 ) );
}
if ( !e-> erased ( ))
erase ( );
QPainter p ( this );
p. drawPixmap ( 0, 0, *m_pix [ ind ] );
}
-// From KDE libkdeui / led.cpp
-
-void OLedBox::drawLed ( QPixmap *pix, const QColor &col ) // paint a ROUND SUNKEN led lamp
+void OLedBox::drawLed ( QPixmap *pix, const QColor &col )
{
QPainter paint;
QColor color;
QBrush brush;
QPen pen;
pix-> fill ( black );
// First of all we want to know what area should be updated
// Initialize coordinates, width, and height of the LED
int width = pix-> width ( );
// Make sure the LED is round!
if ( width > pix-> height ( ))
width = pix-> height ( );
width -= 2; // leave one pixel border
@@ -208,37 +230,37 @@ void OLedBox::drawLed ( QPixmap *pix, const QColor &col ) // paint a ROUND SUNK
light_width--;
if ( !light_width )
break;
paint.drawEllipse( pos, pos, light_width, light_width );
light_width--;
if ( !light_width )
break;
paint.drawEllipse( pos, pos, light_width, light_width );
pos++;
light_width--;
}
// Drawing of bright spot finished, now draw a thin border
// around the LED which resembles a shadow with light coming
// from the upper left.
-#ifdef _QTE_IS_TOO_DUMB_TO_DRAW_AN_ARC
- paint. drawPixmap ( 0, 0, *s_border_pix );
- paint. end ( );
+#ifndef QT_CAN_DRAW_ARCS
+ paint.drawPixmap ( 0, 0, *s_border_pix );
+ paint.end ( );
- pix-> setMask ( pix-> createHeuristicMask ( ));
+ pix->setMask ( pix-> createHeuristicMask ( ));
#else
pen.setWidth( 3 );
brush.setStyle( QBrush::NoBrush ); // Switch off the brush
paint.setBrush( brush ); // This avoids filling of the ellipse
// Set the initial color value to 200 (bright) and start
// drawing the shadow border at 45 (45*16 = 720).
int shadow_color = 200, angle;
for ( angle = 720; angle < 6480; angle += 240 )
{
color.setRgb( shadow_color, shadow_color, shadow_color );
pen.setColor( color );
paint.setPen( pen );
paint.drawArc( 0, 0, width+2, width+2, angle, 240 );
@@ -262,16 +284,18 @@ void OLedBox::drawLed ( QPixmap *pix, const QColor &col ) // paint a ROUND SUNK
} // end for ( angle = 720; angle < 6480; angle += 160 )
paint.end();
//
// painting done
QBitmap mask ( pix-> width ( ), pix-> height ( ), true );
QPainter mp ( &mask );
mp. setPen ( Qt::NoPen );
mp. setBrush ( Qt::color1 );
mp. drawEllipse ( 0, 0, width + 2, width + 2 );
mp. end ( );
pix-> setMask ( mask );
#endif
}
+};
+};