superkaramba
clickarea.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "clickarea.h"
00013
00014 #include <kservicegroup.h>
00015
00016
00017 ClickArea::ClickArea(karamba* k, int x, int y, int w, int h )
00018 : Meter(k, x, y, w, h )
00019 {
00020 value = "";
00021 rect = TQRect( x, y, w, h );
00022 }
00023
00024 ClickArea::~ClickArea()
00025 {}
00026
00027
00028 bool ClickArea::click( TQMouseEvent *e )
00029 {
00030 if( rect.contains( e->x(), e->y() ) )
00031 {
00032
00033
00034 if( e->button() != Qt::LeftButton )
00035 return false;
00036 if (!svc_name.isEmpty())
00037 {
00038 KService sv(svc_name, svc_onClick, svc_icon);
00039 KURL::List l;
00040 KRun::run(sv, l);
00041 return false;
00042 }
00043 else
00044 {
00045 TQString program;
00046 program = onClick;
00047 program.replace( TQRegExp("%v", false), value );
00048
00049 if( !program.isEmpty() )
00050 {
00051
00052 KRun::runCommand(program);
00053 }
00054 }
00055 }
00056 return false;
00057 }
00058
00059 void ClickArea::setOnClick( TQString oc )
00060 {
00061 onClick = oc;
00062 }
00063
00064 void ClickArea::setServiceOnClick( TQString name , TQString exec, TQString icon )
00065 {
00066 svc_name = name;
00067 svc_onClick = exec;
00068 svc_icon = icon;
00069 }
00070
00071 void ClickArea::setOnMiddleClick( TQString oc )
00072 {
00073 onMiddleClick = oc;
00074 }
00075
00076
00077 TQRect ClickArea::getRectangle()
00078 {
00079 return rect;
00080 }
00081
00082 void ClickArea::mUpdate( TQPainter *p )
00083 {
00084
00085 p->drawRect(boundingBox);
00086
00087 }
00088
00089
00090 void ClickArea::setValue( long v)
00091 {
00092
00093 setValue( TQString::number( v ) );
00094
00095 }
00096
00097
00098 void ClickArea::setValue( TQString v )
00099 {
00100 value = v;
00101 }
00102
00103
00104
00105
00106
00107 #include "clickarea.moc"