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 <qobject.h>
00031 #include <QPixmap>
00032 #include "karamba.h"
00033 #include "meters/imagelabel.h"
00034 #include "python/meter.h"
00035 #include "python/imagelabel.h"
00036 #include "lineparser.h"
00037
00038 ImageLabel* createImageLabel(Karamba *theme, long x, long y,
00039 char* path, bool bg)
00040 {
00041 QString file;
00042 ImageLabel *tmp = new ImageLabel(theme, x, y, 0, 0);
00043
00044 if (path) {
00045 file = QString::fromAscii(path);
00046 tmp->setValue(file);
00047 }
00048 tmp->setBackground(bg);
00049 theme->setSensor(LineParser(file), tmp);
00050 theme->addToGroup(tmp);
00051
00052 return tmp;
00053 }
00054
00055 PyObject* py_createImage(PyObject *, PyObject *args)
00056 {
00057 long widget, x, y;
00058 char *text;
00059 if (!PyArg_ParseTuple(args, (char*)"llls:createImage", &widget, &x, &y, &text))
00060 return NULL;
00061 if (!checkKaramba(widget))
00062 return NULL;
00063
00064 ImageLabel *tmp = createImageLabel((Karamba*)widget, x, y, text, 0);
00065 return (Py_BuildValue((char*)"l", (long)tmp));
00066 }
00067
00068 PyObject* py_createBackgroundImage(PyObject *, PyObject *args)
00069 {
00070 long widget, x, y;
00071 char *text;
00072 if (!PyArg_ParseTuple(args, (char*)"llls:createBackgroundImage", &widget, &x, &y,
00073 &text))
00074 return NULL;
00075 if (!checkKaramba(widget))
00076 return NULL;
00077 ImageLabel *tmp = createImageLabel((Karamba*)widget, x, y, text, 1);
00078 tmp->setZValue(-1);
00079 return (Py_BuildValue((char*)"l", (long)tmp));
00080 }
00081
00082
00087 PyObject* py_createTaskIcon(PyObject *, PyObject *args)
00088 {
00089 long widget, x, y;
00090 long ctask;
00091 if (!PyArg_ParseTuple(args, (char*)"llll:createTaskIcon", &widget, &x, &y, &ctask))
00092 return NULL;
00093 if (!checkKaramba(widget))
00094 return NULL;
00095
00096
00097 QList<Task::TaskPtr> tasks = TaskManager::self()->tasks().values();
00098 Task::TaskPtr task;
00099 Task::TaskPtr currTask;
00100 foreach(task, tasks) {
00101 if ((long)task.data() == (long)ctask) {
00102
00103 currTask = task;
00104 break;
00105 }
00106 }
00107
00108 if (currTask.isNull()) {
00109
00110 qWarning("Task not found.");
00111 return (long)NULL ;
00112 }
00113
00114
00115 QPixmap iconPixmap = KWindowSystem::icon(currTask->window());
00116
00117 ImageLabel *tmp = createImageLabel((Karamba*)widget, x, y, 0, 0);
00118 tmp->setValue(iconPixmap);
00119 return (Py_BuildValue((char*)"l", (long)tmp));
00120 }
00121
00122 PyObject* py_deleteImage(PyObject *, PyObject *args)
00123 {
00124 long widget, meter;
00125 if (!PyArg_ParseTuple(args, (char*)"ll:deleteImage", &widget, &meter))
00126 return NULL;
00127 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00128 return NULL;
00129
00130 ((Karamba*)widget)->deleteMeterFromSensors((Meter*)meter);
00131 return Py_BuildValue((char*)"l",
00132 ((Karamba*)widget)->removeMeter((Meter*)meter));
00133 }
00134
00135 PyObject* py_getThemeImage(PyObject *self, PyObject *args)
00136 {
00137 return py_getThemeMeter(self, args, "ImageLabel");
00138 }
00139
00140 PyObject* py_getImagePos(PyObject *self, PyObject *args)
00141 {
00142 return py_getPos(self, args, "ImageLabel");
00143 }
00144
00145 PyObject* py_getImageSize(PyObject *self, PyObject *args)
00146 {
00147 return py_getSize(self, args, "ImageLabel");
00148 }
00149
00150 PyObject* py_moveImage(PyObject *self, PyObject *args)
00151 {
00152 return py_move(self, args, "ImageLabel");
00153 }
00154
00155 PyObject* py_hideImage(PyObject *self, PyObject *args)
00156 {
00157 return py_hide(self, args, "ImageLabel");
00158 }
00159
00160 PyObject* py_showImage(PyObject *self, PyObject *args)
00161 {
00162 return py_show(self, args, "ImageLabel");
00163 }
00164
00165 PyObject* py_getImageValue(PyObject *self, PyObject *args)
00166 {
00167 return py_getStringValue(self, args, "ImageLabel");
00168 }
00169
00170 PyObject* py_setImageValue(PyObject *self, PyObject *args)
00171 {
00172 return py_setStringValue(self, args, "ImageLabel");
00173 }
00174
00175 PyObject* py_getImageSensor(PyObject *self, PyObject *args)
00176 {
00177 return py_getSensor(self, args, "ImageLabel");
00178 }
00179
00180 PyObject* py_setImageSensor(PyObject *self, PyObject *args)
00181 {
00182 return py_setSensor(self, args, "ImageLabel");
00183 }
00184
00185 PyObject* py_removeImageEffects(PyObject *, PyObject *args)
00186 {
00187 long widget, meter;
00188 if (!PyArg_ParseTuple(args, (char*)"ll:removeImageEffects", &widget, &meter))
00189 return NULL;
00190 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00191 return NULL;
00192 ((ImageLabel*)meter)->removeEffects();
00193 return Py_BuildValue((char*)"l", 1);
00194 }
00195
00196 PyObject* py_changeImageIntensity(PyObject *, PyObject *args)
00197 {
00198 long widget, meter;
00199 long millisec = 0;
00200 float ratio;
00201 if (!PyArg_ParseTuple(args, (char*)"llf|l:changeImageIntensity", &widget, &meter,
00202 &ratio, &millisec))
00203 return NULL;
00204 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00205 return NULL;
00206 ((ImageLabel*)meter)->intensity(ratio, millisec);
00207 return Py_BuildValue((char*)"l", 1);
00208 }
00209
00210 PyObject* py_changeImageChannelIntensity(PyObject *, PyObject *args)
00211 {
00212 long widget, meter;
00213 float ratio;
00214 char* channel;
00215 long millisec = 0;
00216 if (!PyArg_ParseTuple(args, (char*)"llfs|l:changeImageChannelIntensity", &widget,
00217 &meter, &ratio, &channel, &millisec))
00218 return NULL;
00219 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00220 return NULL;
00221 ((ImageLabel*)meter)->channelIntensity(ratio, channel, millisec);
00222 return Py_BuildValue((char*)"l", 1);
00223 }
00224
00225 PyObject* py_changeImageToGray(PyObject *, PyObject *args)
00226 {
00227 long widget, meter;
00228 long millisec = 0;
00229 if (!PyArg_ParseTuple(args, (char*)"ll|l:changeImageToGray", &widget, &meter,
00230 &millisec))
00231 return NULL;
00232 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00233 return NULL;
00234 ((ImageLabel*)meter)->toGray(millisec);
00235 return Py_BuildValue((char*)"l", 1);
00236 }
00237
00238 PyObject* py_removeImageTransformations(PyObject *, PyObject *args)
00239 {
00240 long widget, meter;
00241 if (!PyArg_ParseTuple(args, (char*)"ll:removeImageTransformations", &widget, &meter))
00242 return NULL;
00243 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00244 return NULL;
00245 ((ImageLabel*)meter)->removeImageTransformations();
00246 return Py_BuildValue((char*)"l", 1);
00247 }
00248
00249 PyObject* py_rotateImage(PyObject *, PyObject *args)
00250 {
00251 long widget, meter;
00252 long deg;
00253 if (!PyArg_ParseTuple(args, (char*)"lll:rotateImage", &widget, &meter, °))
00254 return NULL;
00255 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00256 return NULL;
00257 ((ImageLabel*)meter)->rotate((int)deg);
00258 return Py_BuildValue((char*)"l", 1);
00259 }
00260
00261 PyObject* py_getImageHeight(PyObject *, PyObject *args)
00262 {
00263 long widget, meter;
00264 if (!PyArg_ParseTuple(args, (char*)"ll:getImageHeight", &widget, &meter))
00265 return NULL;
00266 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00267 return NULL;
00268 return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getHeight());
00269 }
00270
00271 PyObject* py_getImageWidth(PyObject *, PyObject *args)
00272 {
00273 long widget, meter;
00274 if (!PyArg_ParseTuple(args, (char*)"ll:getImageWidth", &widget, &meter))
00275 return NULL;
00276 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00277 return NULL;
00278 return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getWidth());
00279 }
00280
00281 PyObject* py_resizeImageSmooth(PyObject *, PyObject *args)
00282 {
00283 long widget, meter;
00284 long w, h;
00285 if (!PyArg_ParseTuple(args, (char*)"llll:resizeImageSmooth", &widget, &meter,
00286 &w, &h))
00287 return NULL;
00288 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00289 return NULL;
00290
00291 ((Karamba*)widget)->scaleImageLabel((ImageLabel*)meter,
00292 (int)w, (int)h);
00293
00294 return Py_BuildValue((char*)"l", 1);
00295 }
00296
00297 PyObject* py_resizeImage(PyObject *, PyObject *args)
00298 {
00299 long widget, meter, w, h;
00300 if (!PyArg_ParseTuple(args, (char*)"llll:resizeImage", &widget, &meter,
00301 &w, &h))
00302 return NULL;
00303 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00304 return NULL;
00305 ((const Karamba*)widget)->scaleImageLabel(
00306 (ImageLabel*)meter, (int)w, (int)h);
00307 return Py_BuildValue((char*)"l", 1);
00308 }
00309
00310 PyObject* py_addImageTooltip(PyObject *, PyObject *args)
00311 {
00312 long widget, meter;
00313 PyObject* t;
00314 if (!PyArg_ParseTuple(args, (char*)"llO:addImageTooltip", &widget, &meter, &t))
00315 return NULL;
00316 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
00317 return NULL;
00318 ((ImageLabel*)meter)->setTooltip(PyString2QString(t));
00319 return Py_BuildValue((char*)"l", 1);
00320 }