summaryrefslogtreecommitdiff
path: root/libopie/oclickablelabel.cpp
Side-by-side diff
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 @@
#include "oclickablelabel.h"
#include <stdio.h>
-OClickableLabel::OClickableLabel(QWidget* parent,
- const char* name,
+/**
+ * This constructs the clickable ButtonLabel
+ *
+ * @param parent The parent of this label
+ * @param name A name of this label @see QObject
+ * @param fl The windowing flags
+ */
+OClickableLabel::OClickableLabel(QWidget* parent,
+ const char* name,
WFlags fl) :
QLabel(parent,name,fl)
{
textInverted=false;
isToggle=false;
isDown=false;
showState(false);
setFrameShadow(Sunken);
}
+/**
+ * This method makes the label behave as a toggle button
+ *
+ * @param t Whether or not to behave like a toggle button
+ */
void OClickableLabel::setToggleButton(bool t) {
isToggle=t;
}
+/**
+ * @internal
+ */
void OClickableLabel::mousePressEvent( QMouseEvent * /*e*/ ) {
if (isToggle && isDown) {
showState(false);
} else {
showState(true);
}
}
+/**
+ * @internal
+ */
void OClickableLabel::mouseReleaseEvent( QMouseEvent *e ) {
if (rect().contains(e->pos()) && isToggle) isDown=!isDown;
if (isToggle && isDown) {
showState(true);
} else {
@@ -39,12 +57,15 @@ void OClickableLabel::mouseReleaseEvent( QMouseEvent *e ) {
emit toggled(isDown);
}
emit clicked();
}
}
+/**
+ * @internal
+ */
void OClickableLabel::mouseMoveEvent( QMouseEvent *e ) {
if (rect().contains(e->pos())) {
if (isToggle && isDown) {
showState(false);
} else {
showState(true);
@@ -55,12 +76,17 @@ void OClickableLabel::mouseMoveEvent( QMouseEvent *e ) {
} else {
showState(false);
}
}
}
+/**
+ * this toggles the label and inverts the color of
+ * the label
+ * @param on
+ */
void OClickableLabel::showState(bool on) {
if (on) {
//setFrameShape(Panel);
setInverted(true);
setBackgroundMode(PaletteHighlight);
} else {
@@ -79,10 +105,13 @@ void OClickableLabel::setInverted(bool on) {
pal.setColor(QPalette::Normal, QColorGroup::Foreground, col);
setPalette(pal);
textInverted=!textInverted;
}
}
+/**
+ * @param on if the Label is down or up
+ */
void OClickableLabel::setOn(bool on) {
isDown=on;
showState(isDown);
}