clickarea.cpp
00001 /*************************************************************************** 00002 * Copyright (C) 2003 by Hans Karlsson * 00003 * karlsson.h@home.se * 00004 * * 00005 * Copyright (C) 2004,2005 Luke Kenneth Casson Leighton <lkcl@lkcl.net> * 00006 * * 00007 * This program is free software; you can redistribute it and/or modify * 00008 * it under the terms of the GNU General Public License as published by * 00009 * the Free Software Foundation; either version 2 of the License, or * 00010 * (at your option) any later version. * 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 //qDebug(TQString::number(e->type())); 00033 //KShellProcess ksp; 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 //qDebug(program); 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"