4
#include <QtGui/qdrawutil.h>
5
#include <QtGui/QLCDNumber>
11
#include <kdatepicker.h>
13
#include <kwindowsystem.h>
14
#include <kiconloader.h>
16
#include <kpixmapeffect.h>
18
#include <kstandarddirs.h>
21
#include <taskmanager.h>
24
#include "kastasker.h"
26
#include "kasclockitem.h"
27
#include "kasclockitem.moc"
29
class LCD : public QLCDNumber
32
LCD( QWidget *parent, const char *name=0 )
33
: QLCDNumber(parent,name) {}
36
void draw( QPainter *p ) { drawContents(p); }
39
KasClockItem::KasClockItem( KasBar *parent )
42
setCustomPopup( true );
44
QTimer *t = new QTimer( this );
45
connect( t, SIGNAL( timeout() ), SLOT( updateTime() ) );
48
lcd = new LCD( parent );
51
lcd->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
52
lcd->setBackgroundMode( Qt::NoBackground );
53
lcd->setFrameStyle( QFrame::NoFrame );
54
lcd->setSegmentStyle( QLCDNumber::Flat );
55
lcd->setNumDigits( 5 );
56
lcd->setAutoMask( true );
59
connect( this, SIGNAL(leftButtonClicked(QMouseEvent *)), SLOT(togglePopup()) );
60
connect( this, SIGNAL(rightButtonClicked(QMouseEvent *)), SLOT(showMenuAt(QMouseEvent *) ) );
63
KasClockItem::~KasClockItem()
68
KasPopup *KasClockItem::createPopup()
70
KasPopup *pop = new KasPopup( this );
73
(void) new KDatePicker( pop );
79
void KasClockItem::updateTime()
81
setText( KGlobal::locale()->formatDate( QDate::currentDate(), KLocale::ShortDate ) );
82
lcd->display( KGlobal::locale()->formatTime( QTime::currentTime(), false /* includeSecs */, false /* isDuration */) );
87
void KasClockItem::paint( QPainter *p )
91
lcd->setGeometry( QRect( 0, 0, extent(), extent()-15 ) );
94
p->translate( 3, 15 );
95
lcd->setPaletteForegroundColor( kasbar()->colorGroup().mid() );
100
p->translate( 1, 13 );
101
lcd->setPaletteForegroundColor( resources()->activePenColor() );
106
void KasClockItem::showMenuAt( QMouseEvent *ev )
109
showMenuAt( ev->globalPos() );
112
void KasClockItem::showMenuAt( QPoint p )
115
kasbar()->updateMouseOver();
117
KasTasker *bar = dynamic_cast<KasTasker *> (KasItem::kasbar());
121
KMenu *menu = bar->contextMenu();