libopie API Documentation

oclickablelabel.cpp

00001 #include "oclickablelabel.h"
00002 #include <stdio.h>
00003 
00011 OClickableLabel::OClickableLabel(QWidget* parent,
00012                    const char* name,
00013                    WFlags fl) :
00014   QLabel(parent,name,fl)
00015 {
00016     textInverted=false;
00017     isToggle=false;
00018     isDown=false;
00019     showState(false);
00020     setFrameShadow(Sunken);
00021 }
00022 
00028 void OClickableLabel::setToggleButton(bool t) {
00029     isToggle=t;
00030 }
00031 
00035 void OClickableLabel::mousePressEvent( QMouseEvent * /*e*/ ) {
00036     if (isToggle && isDown) {
00037     showState(false);
00038     } else {
00039     showState(true);
00040     }
00041 }
00042 
00046 void OClickableLabel::mouseReleaseEvent( QMouseEvent *e ) {
00047     if (rect().contains(e->pos()) && isToggle) isDown=!isDown;
00048 
00049     if (isToggle && isDown) {
00050     showState(true);
00051     } else {
00052     showState(false);
00053     }
00054 
00055     if (rect().contains(e->pos())) {
00056     if (isToggle) {
00057         emit toggled(isDown);
00058     }
00059     emit clicked();
00060     }
00061 }
00062 
00066 void OClickableLabel::mouseMoveEvent( QMouseEvent *e ) {
00067     if (rect().contains(e->pos())) {
00068     if (isToggle && isDown) {
00069         showState(false);
00070     } else {
00071         showState(true);
00072     }
00073     } else {
00074     if (isToggle && isDown) {
00075         showState(true);
00076     } else {
00077         showState(false);
00078     }
00079     }
00080 }
00081 
00087 void OClickableLabel::showState(bool on) {
00088   if (on) {
00089     //setFrameShape(Panel);
00090     setInverted(true);
00091     setBackgroundMode(PaletteHighlight);
00092   } else {
00093     //setFrameShape(NoFrame);
00094     setInverted(false);
00095     setBackgroundMode(PaletteBackground);
00096   }
00097   repaint();
00098 }
00099 
00100 void OClickableLabel::setInverted(bool on) {
00101     if ( (!textInverted && on) || (textInverted && !on) ) {
00102     QPalette pal=palette();
00103     QColor col=pal.color(QPalette::Normal, QColorGroup::Foreground);
00104     col.setRgb(255-col.red(),255-col.green(),255-col.blue());
00105     pal.setColor(QPalette::Normal, QColorGroup::Foreground, col);
00106     setPalette(pal);
00107     textInverted=!textInverted;
00108     }
00109 }
00110 
00114 void OClickableLabel::setOn(bool on) {
00115   isDown=on;
00116   showState(isDown);
00117 }
KDE Logo
This file is part of the documentation for OPIE Version 1.1.
Documentation copyright © 1997-2003 the KDE developers. 2003 OPIE developers
Generated on Tue Feb 10 20:24:42 2004 by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2001