From 78211642003f70797a5faa1767a5ab2f5f83606f Mon Sep 17 00:00:00 2001 From: hakan Date: Tue, 26 Mar 2002 19:05:31 +0000 Subject: Added shortcut buttons to set the start time --- (limited to 'core/pim/datebook/clickablelabel.cpp') diff --git a/core/pim/datebook/clickablelabel.cpp b/core/pim/datebook/clickablelabel.cpp index 6912c34..1dd0d15 100644 --- a/core/pim/datebook/clickablelabel.cpp +++ b/core/pim/datebook/clickablelabel.cpp @@ -1,31 +1,88 @@ #include "clickablelabel.h" +#include ClickableLabel::ClickableLabel(QWidget* parent = 0, const char* name = 0, WFlags fl = 0) : QLabel(parent,name,fl) { - setFrameShape(NoFrame); + textInverted=false; + isToggle=false; + isDown=false; + showState(false); setFrameShadow(Sunken); } +void ClickableLabel::setToggleButton(bool t) { + isToggle=t; +} + void ClickableLabel::mousePressEvent( QMouseEvent *e ) { - setFrameShape(Panel); - repaint(); + if (isToggle && isDown) { + showState(false); + } else { + showState(true); + } } void ClickableLabel::mouseReleaseEvent( QMouseEvent *e ) { - setFrameShape(NoFrame); - repaint(); + if (rect().contains(e->pos()) && isToggle) isDown=!isDown; + + if (isToggle && isDown) { + showState(true); + } else { + showState(false); + } + if (rect().contains(e->pos())) { + if (isToggle) { + emit toggled(isDown); + } emit clicked(); } } void ClickableLabel::mouseMoveEvent( QMouseEvent *e ) { if (rect().contains(e->pos())) { - setFrameShape(Panel); + if (isToggle && isDown) { + showState(false); + } else { + showState(true); + } } else { - setFrameShape(NoFrame); + if (isToggle && isDown) { + showState(true); + } else { + showState(false); + } } } + +void ClickableLabel::showState(bool on) { + if (on) { + //setFrameShape(Panel); + setInverted(true); + setBackgroundMode(PaletteHighlight); + } else { + //setFrameShape(NoFrame); + setInverted(false); + setBackgroundMode(PaletteBackground); + } + repaint(); +} + +void ClickableLabel::setInverted(bool on) { + if ( (!textInverted && on) || (textInverted && !on) ) { + QPalette pal=palette(); + QColor col=pal.color(QPalette::Normal, QColorGroup::Foreground); + col.setRgb(255-col.red(),255-col.green(),255-col.blue()); + pal.setColor(QPalette::Normal, QColorGroup::Foreground, col); + setPalette(pal); + textInverted=!textInverted; + } +} + +void ClickableLabel::setOn(bool on) { + isDown=on; + showState(isDown); +} -- cgit v0.9.0.2