00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifdef _XOPEN_SOURCE
00026 #undef _XOPEN_SOURCE
00027 #endif
00028
00029 #include <Python.h>
00030 #include <tqobject.h>
00031 #include "karamba.h"
00032 #include "imagelabel.h"
00033 #include "meter_python.h"
00034 #include "imagelabel_python.h"
00035 #include "lineparser.h"
00036
00037 ImageLabel* createImageLabel(karamba *theme, long x, long y,
00038 char* path, bool bg)
00039 {
00040 TQString file;
00041
00042
00043
00044
00045
00046
00047
00048
00049 ImageLabel *tmp2 = new ImageLabel(theme, x, y, 0, 0);
00050 ImageLabel *tmp = new ImageLabel(theme, x, y, 0, 0);
00051 delete tmp2;
00052
00053 if(path)
00054 {
00055 file.setAscii(path);
00056 tmp->setValue(file);
00057
00058 }
00059 tmp->setBackground(bg);
00060 theme->setSensor(LineParser(file), tmp);
00061 theme->meterList->append (tmp);
00062 theme->imageList->append (tmp);
00063 if(bg)
00064 theme->kroot->repaint(true);
00065 return tmp;
00066 }
00067
00068 PyObject* py_createImage(PyObject *, PyObject *args)
00069 {
00070 long widget, x, y;
00071 char *text;
00072 if (!PyArg_ParseTuple(args, (char*)"llls:createImage", &widget, &x, &y, &text))
00073 return NULL;
00074 if (!checkKaramba(widget))
00075 return NULL;
00076
00077 ImageLabel *tmp = createImageLabel((karamba*)widget, x, y, text, 0);
00078 return (Py_BuildValue((char*)"l", (long)tmp));
00079 }
00080
00081 PyObject* py_createBackgroundImage(PyObject *, PyObject *args)
00082 {
00083 long widget, x, y;
00084 char *text;
00085 if (!PyArg_ParseTuple(args, (char*)"llls:createBackgroundImage", &widget, &x, &y,
00086 &text))
00087 return NULL;
00088 if (!checkKaramba(widget))
00089 return NULL;
00090 ImageLabel *tmp = createImageLabel((karamba*)widget, x, y, text, 1);
00091 return (Py_BuildValue((char*)"l", (long)tmp));
00092 }
00093
00094
00099 PyObject* py_createTaskIcon(PyObject *, PyObject *args)
00100 {
00101 long widget, x, y;
00102 long ctask;
00103 if (!PyArg_ParseTuple(args, (char*)"llll:createTaskIcon", &widget, &x, &y, &ctask))
00104 return NULL;
00105 if (!checkKaramba(widget))
00106 return NULL;
00107
00108
00109 TaskList taskList = ((karamba*)widget)->taskManager.tasks();
00110 Task* task = 0;
00111 Task* currTask = 0;
00112 for (task = taskList.first(); task; task = taskList.next())
00113 {
00114 if ((long)task == (long)ctask)
00115 {
00116
00117 currTask = task;
00118 break;
00119 }
00120 }
00121 if (currTask == 0)
00122 {
00123
00124 tqWarning("Task not found.");
00125 return NULL;
00126 }
00127
00128 TQPixmap iconPixmap = KWin::icon(currTask->window());
00129
00130 ImageLabel *tmp = createImageLabel((karamba*)widget, x, y, 0, 0);
00131 tmp->setValue(iconPixmap);
00132 return (Py_BuildValue((char*)"l", (long)tmp));
00133 }
00134
00135 PyObject* py_deleteImage(PyObject *, PyObject *args)
00136 {
00137 long widget, meter;
00138 if (!PyArg_ParseTuple(args, (char*)"ll:deleteImage", &widget, &meter))
00139 return NULL;
00140 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00141 return NULL;
00142
00143 ((karamba*)widget)->deleteMeterFromSensors((Meter*)meter);
00144 ((karamba*)widget)->clickList->removeRef((Meter*)meter);
00145 ((karamba*)widget)->imageList->removeRef((Meter*)meter);
00146 return Py_BuildValue((char*)"l",
00147 ((karamba*)widget)->meterList->removeRef((Meter*)meter));
00148 }
00149
00150 PyObject* py_getThemeImage(PyObject *self, PyObject *args)
00151 {
00152 return py_getThemeMeter(self, args, "ImageLabel");
00153 }
00154
00155 PyObject* py_getImagePos(PyObject *self, PyObject *args)
00156 {
00157 return py_getPos(self, args, "ImageLabel");
00158 }
00159
00160 PyObject* py_getImageSize(PyObject *self, PyObject *args)
00161 {
00162 return py_getSize(self, args, "ImageLabel");
00163 }
00164
00165 PyObject* py_moveImage(PyObject *self, PyObject *args)
00166 {
00167 return py_move(self, args, "ImageLabel");
00168 }
00169
00170 PyObject* py_hideImage(PyObject *self, PyObject *args)
00171 {
00172 return py_hide(self, args, "ImageLabel");
00173 }
00174
00175 PyObject* py_showImage(PyObject *self, PyObject *args)
00176 {
00177 return py_show(self, args, "ImageLabel");
00178 }
00179
00180 PyObject* py_getImageValue(PyObject *self, PyObject *args)
00181 {
00182 return py_getStringValue(self, args, "ImageLabel");
00183 }
00184
00185 PyObject* py_setImageValue(PyObject *self, PyObject *args)
00186 {
00187 return py_setStringValue(self, args, "ImageLabel");
00188 }
00189
00190 PyObject* py_getImageSensor(PyObject *self, PyObject *args)
00191 {
00192 return py_getSensor(self, args, "ImageLabel");
00193 }
00194
00195 PyObject* py_setImageSensor(PyObject *self, PyObject *args)
00196 {
00197 return py_setSensor(self, args, "ImageLabel");
00198 }
00199
00200 PyObject* py_removeImageEffects(PyObject *, PyObject *args)
00201 {
00202 long widget, meter;
00203 if (!PyArg_ParseTuple(args, (char*)"ll:removeImageEffects", &widget, &meter))
00204 return NULL;
00205 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00206 return NULL;
00207 ((ImageLabel*)meter)->removeEffects();
00208 return Py_BuildValue((char*)"l", 1);
00209 }
00210
00211 PyObject* py_changeImageIntensity(PyObject *, PyObject *args)
00212 {
00213 long widget, meter;
00214 long millisec = 0;
00215 float ratio;
00216 if (!PyArg_ParseTuple(args, (char*)"llf|l:changeImageIntensity", &widget, &meter,
00217 &ratio, &millisec))
00218 return NULL;
00219 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00220 return NULL;
00221 ((ImageLabel*)meter)->intensity(ratio, millisec);
00222 return Py_BuildValue((char*)"l", 1);
00223 }
00224
00225 PyObject* py_changeImageChannelIntensity(PyObject *, PyObject *args)
00226 {
00227 long widget, meter;
00228 float ratio;
00229 char* channel;
00230 long millisec = 0;
00231 if (!PyArg_ParseTuple(args, (char*)"llfs|l:changeImageChannelIntensity", &widget,
00232 &meter, &ratio, &channel, &millisec))
00233 return NULL;
00234 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00235 return NULL;
00236 ((ImageLabel*)meter)->channelIntensity(ratio, channel, millisec);
00237 return Py_BuildValue((char*)"l", 1);
00238 }
00239
00240 PyObject* py_changeImageToGray(PyObject *, PyObject *args)
00241 {
00242 long widget, meter;
00243 long millisec = 0;
00244 if (!PyArg_ParseTuple(args, (char*)"ll|l:changeImageToGray", &widget, &meter,
00245 &millisec))
00246 return NULL;
00247 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00248 return NULL;
00249 ((ImageLabel*)meter)->toGray(millisec);
00250 return Py_BuildValue((char*)"l", 1);
00251 }
00252
00253 PyObject* py_removeImageTransformations(PyObject *, PyObject *args)
00254 {
00255 long widget, meter;
00256 if (!PyArg_ParseTuple(args, (char*)"ll:removeImageTransformations", &widget, &meter))
00257 return NULL;
00258 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00259 return NULL;
00260 ((ImageLabel*)meter)->removeImageTransformations();
00261 return Py_BuildValue((char*)"l", 1);
00262 }
00263
00264 PyObject* py_rotateImage(PyObject *, PyObject *args)
00265 {
00266 long widget, meter;
00267 long deg;
00268 if (!PyArg_ParseTuple(args, (char*)"lll:rotateImage", &widget, &meter, °))
00269 return NULL;
00270 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00271 return NULL;
00272 ((ImageLabel*)meter)->rotate((int)deg);
00273 return Py_BuildValue((char*)"l", 1);
00274 }
00275
00276 PyObject* py_getImageHeight(PyObject *, PyObject *args)
00277 {
00278 long widget, meter;
00279 if (!PyArg_ParseTuple(args, (char*)"ll:getImageHeight", &widget, &meter))
00280 return NULL;
00281 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00282 return NULL;
00283 return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getHeight());
00284 }
00285
00286 PyObject* py_getImageWidth(PyObject *, PyObject *args)
00287 {
00288 long widget, meter;
00289 if (!PyArg_ParseTuple(args, (char*)"ll:getImageWidth", &widget, &meter))
00290 return NULL;
00291 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00292 return NULL;
00293 return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getWidth());
00294 }
00295
00296 PyObject* py_resizeImageSmooth(PyObject *, PyObject *args)
00297 {
00298 long widget, meter;
00299 long w, h;
00300 if (!PyArg_ParseTuple(args, (char*)"llll:resizeImageSmooth", &widget, &meter,
00301 &w, &h))
00302 return NULL;
00303 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00304 return NULL;
00305 ((ImageLabel*)meter)->smoothScale((int)w, (int)h);
00306 return Py_BuildValue((char*)"l", 1);
00307 }
00308
00309 PyObject* py_resizeImage(PyObject *, PyObject *args)
00310 {
00311 long widget, meter, w, h;
00312 if (!PyArg_ParseTuple(args, (char*)"llll:resizeImage", &widget, &meter,
00313 &w, &h))
00314 return NULL;
00315 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00316 return NULL;
00317 ((ImageLabel*)meter)->scale((int)w, (int)h);
00318 return Py_BuildValue((char*)"l", 1);
00319 }
00320
00321 PyObject* py_addImageTooltip(PyObject *, PyObject *args)
00322 {
00323 long widget, meter;
00324 PyObject* t;
00325 if (!PyArg_ParseTuple(args, (char*)"llO:addImageTooltip", &widget, &meter, &t))
00326 return NULL;
00327 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00328 return NULL;
00329 ((ImageLabel*)meter)->setTooltip(PyString2TQString(t));
00330 return Py_BuildValue((char*)"l", 1);
00331 }