summaryrefslogtreecommitdiff
path: root/libopie/oclickablelabel.cpp
Unidiff
Diffstat (limited to 'libopie/oclickablelabel.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/oclickablelabel.cpp33
1 files changed, 31 insertions, 2 deletions
diff --git a/libopie/oclickablelabel.cpp b/libopie/oclickablelabel.cpp
index 5768529..bc7037b 100644
--- a/libopie/oclickablelabel.cpp
+++ b/libopie/oclickablelabel.cpp
@@ -1,33 +1,51 @@
1#include "oclickablelabel.h" 1#include "oclickablelabel.h"
2#include <stdio.h> 2#include <stdio.h>
3 3
4OClickableLabel::OClickableLabel(QWidget* parent, 4/**
5 const char* name, 5 * This constructs the clickable ButtonLabel
6 *
7 * @param parent The parent of this label
8 * @param name A name of this label @see QObject
9 * @param fl The windowing flags
10 */
11OClickableLabel::OClickableLabel(QWidget* parent,
12 const char* name,
6 WFlags fl) : 13 WFlags fl) :
7 QLabel(parent,name,fl) 14 QLabel(parent,name,fl)
8{ 15{
9 textInverted=false; 16 textInverted=false;
10 isToggle=false; 17 isToggle=false;
11 isDown=false; 18 isDown=false;
12 showState(false); 19 showState(false);
13 setFrameShadow(Sunken); 20 setFrameShadow(Sunken);
14} 21}
15 22
23/**
24 * This method makes the label behave as a toggle button
25 *
26 * @param t Whether or not to behave like a toggle button
27 */
16void OClickableLabel::setToggleButton(bool t) { 28void OClickableLabel::setToggleButton(bool t) {
17 isToggle=t; 29 isToggle=t;
18} 30}
19 31
32/**
33 * @internal
34 */
20void OClickableLabel::mousePressEvent( QMouseEvent * /*e*/ ) { 35void OClickableLabel::mousePressEvent( QMouseEvent * /*e*/ ) {
21 if (isToggle && isDown) { 36 if (isToggle && isDown) {
22 showState(false); 37 showState(false);
23 } else { 38 } else {
24 showState(true); 39 showState(true);
25 } 40 }
26} 41}
27 42
43/**
44 * @internal
45 */
28void OClickableLabel::mouseReleaseEvent( QMouseEvent *e ) { 46void OClickableLabel::mouseReleaseEvent( QMouseEvent *e ) {
29 if (rect().contains(e->pos()) && isToggle) isDown=!isDown; 47 if (rect().contains(e->pos()) && isToggle) isDown=!isDown;
30 48
31 if (isToggle && isDown) { 49 if (isToggle && isDown) {
32 showState(true); 50 showState(true);
33 } else { 51 } else {
@@ -39,12 +57,15 @@ void OClickableLabel::mouseReleaseEvent( QMouseEvent *e ) {
39 emit toggled(isDown); 57 emit toggled(isDown);
40 } 58 }
41 emit clicked(); 59 emit clicked();
42 } 60 }
43} 61}
44 62
63/**
64 * @internal
65 */
45void OClickableLabel::mouseMoveEvent( QMouseEvent *e ) { 66void OClickableLabel::mouseMoveEvent( QMouseEvent *e ) {
46 if (rect().contains(e->pos())) { 67 if (rect().contains(e->pos())) {
47 if (isToggle && isDown) { 68 if (isToggle && isDown) {
48 showState(false); 69 showState(false);
49 } else { 70 } else {
50 showState(true); 71 showState(true);
@@ -55,12 +76,17 @@ void OClickableLabel::mouseMoveEvent( QMouseEvent *e ) {
55 } else { 76 } else {
56 showState(false); 77 showState(false);
57 } 78 }
58 } 79 }
59} 80}
60 81
82/**
83 * this toggles the label and inverts the color of
84 * the label
85 * @param on
86 */
61void OClickableLabel::showState(bool on) { 87void OClickableLabel::showState(bool on) {
62 if (on) { 88 if (on) {
63 //setFrameShape(Panel); 89 //setFrameShape(Panel);
64 setInverted(true); 90 setInverted(true);
65 setBackgroundMode(PaletteHighlight); 91 setBackgroundMode(PaletteHighlight);
66 } else { 92 } else {
@@ -79,10 +105,13 @@ void OClickableLabel::setInverted(bool on) {
79 pal.setColor(QPalette::Normal, QColorGroup::Foreground, col); 105 pal.setColor(QPalette::Normal, QColorGroup::Foreground, col);
80 setPalette(pal); 106 setPalette(pal);
81 textInverted=!textInverted; 107 textInverted=!textInverted;
82 } 108 }
83} 109}
84 110
111/**
112 * @param on if the Label is down or up
113 */
85void OClickableLabel::setOn(bool on) { 114void OClickableLabel::setOn(bool on) {
86 isDown=on; 115 isDown=on;
87 showState(isDown); 116 showState(isDown);
88} 117}