• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • superkaramba
 

superkaramba

  • superkaramba
  • src
imagelabel_python.cpp
1/****************************************************************************
2* imagelabel_python.cpp - Imagelabel functions for python api
3*
4* Copyright (C) 2003 Hans Karlsson <karlsson.h@home.se>
5* Copyright (C) 2003-2004 Adam Geitgey <adam@rootnode.org>
6* Copyright (c) 2004 Petri Damstén <damu@iki.fi>
7*
8* This file is part of SuperKaramba.
9*
10* SuperKaramba is free software; you can redistribute it and/or modify
11* it under the terms of the GNU General Public License as published by
12* the Free Software Foundation; either version 2 of the License, or
13* (at your option) any later version.
14*
15* SuperKaramba is distributed in the hope that it will be useful,
16* but WITHOUT ANY WARRANTY; without even the implied warranty of
17* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18* GNU General Public License for more details.
19*
20* You should have received a copy of the GNU General Public License
21* along with SuperKaramba; if not, write to the Free Software
22* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23****************************************************************************/
24
25#ifdef _XOPEN_SOURCE
26#undef _XOPEN_SOURCE
27#endif
28
29#include <Python.h>
30#include <tqobject.h>
31#include "karamba.h"
32#include "imagelabel.h"
33#include "meter_python.h"
34#include "imagelabel_python.h"
35#include "lineparser.h"
36
37ImageLabel* createImageLabel(karamba *theme, long x, long y,
38 char* path, bool bg)
39{
40 TQString file;
41 //TQString fakefile;
42
43 /*tmp->setThemePath(theme->themePath);*/
44 //FIXME: This is an ugly hack to ensure a unique reference
45 //to add to the meterList. It is a workaround for when a clickarea
46 //is attached to an image, the image is deleted, and a new image is
47 //created. A correct solution would be have dictionaries with a key/value
48 //pair of ints->refs.
49 ImageLabel *tmp2 = new ImageLabel(theme, x, y, 0, 0);
50 ImageLabel *tmp = new ImageLabel(theme, x, y, 0, 0);
51 delete tmp2;
52
53 if(path)
54 {
55 file.setAscii(path);
56 tmp->setValue(file);
57 //tmp->parseImages(file, fakefile, x,y, 0, 0);
58 }
59 tmp->setBackground(bg);
60 theme->setSensor(LineParser(file), tmp);
61 theme->meterList->append (tmp);
62 theme->imageList->append (tmp);
63 if(bg)
64 theme->kroot->repaint(true);
65 return tmp;
66}
67
68PyObject* py_createImage(PyObject *, PyObject *args)
69{
70 long widget, x, y;
71 char *text;
72 if (!PyArg_ParseTuple(args, (char*)"llls:createImage", &widget, &x, &y, &text))
73 return NULL;
74 if (!checkKaramba(widget))
75 return NULL;
76
77 ImageLabel *tmp = createImageLabel((karamba*)widget, x, y, text, 0);
78 return (Py_BuildValue((char*)"l", (long)tmp));
79}
80
81PyObject* py_createBackgroundImage(PyObject *, PyObject *args)
82{
83 long widget, x, y;
84 char *text;
85 if (!PyArg_ParseTuple(args, (char*)"llls:createBackgroundImage", &widget, &x, &y,
86 &text))
87 return NULL;
88 if (!checkKaramba(widget))
89 return NULL;
90 ImageLabel *tmp = createImageLabel((karamba*)widget, x, y, text, 1);
91 return (Py_BuildValue((char*)"l", (long)tmp));
92}
93
94//Matthew Kay: new function for creating icons for tasks
99PyObject* py_createTaskIcon(PyObject *, PyObject *args)
100{
101 long widget, x, y;
102 long ctask;
103 if (!PyArg_ParseTuple(args, (char*)"llll:createTaskIcon", &widget, &x, &y, &ctask))
104 return NULL;
105 if (!checkKaramba(widget))
106 return NULL;
107
108 //get the specified task and insure it exists
109 TaskList taskList = ((karamba*)widget)->taskManager.tasks();
110 Task* task = 0;
111 Task* currTask = 0;
112 for (task = taskList.first(); task; task = taskList.next())
113 {
114 if ((long)task == (long)ctask)
115 {
116 //task found
117 currTask = task;
118 break;
119 }
120 }
121 if (currTask == 0)
122 {
123 //no task was found
124 tqWarning("Task not found.");
125 return NULL;
126 }
127 //retrieve the TQPixmap that represents this image
128 TQPixmap iconPixmap = KWin::icon(currTask->window());
129
130 ImageLabel *tmp = createImageLabel((karamba*)widget, x, y, 0, 0);
131 tmp->setValue(iconPixmap);
132 return (Py_BuildValue((char*)"l", (long)tmp));
133}
134
135PyObject* py_deleteImage(PyObject *, PyObject *args)
136{
137 long widget, meter;
138 if (!PyArg_ParseTuple(args, (char*)"ll:deleteImage", &widget, &meter))
139 return NULL;
140 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
141 return NULL;
142
143 ((karamba*)widget)->deleteMeterFromSensors((Meter*)meter);
144 ((karamba*)widget)->clickList->removeRef((Meter*)meter);
145 ((karamba*)widget)->imageList->removeRef((Meter*)meter);
146 return Py_BuildValue((char*)"l",
147 ((karamba*)widget)->meterList->removeRef((Meter*)meter));
148}
149
150PyObject* py_getThemeImage(PyObject *self, PyObject *args)
151{
152 return py_getThemeMeter(self, args, "ImageLabel");
153}
154
155PyObject* py_getImagePos(PyObject *self, PyObject *args)
156{
157 return py_getPos(self, args, "ImageLabel");
158}
159
160PyObject* py_getImageSize(PyObject *self, PyObject *args)
161{
162 return py_getSize(self, args, "ImageLabel");
163}
164
165PyObject* py_moveImage(PyObject *self, PyObject *args)
166{
167 return py_move(self, args, "ImageLabel");
168}
169
170PyObject* py_hideImage(PyObject *self, PyObject *args)
171{
172 return py_hide(self, args, "ImageLabel");
173}
174
175PyObject* py_showImage(PyObject *self, PyObject *args)
176{
177 return py_show(self, args, "ImageLabel");
178}
179
180PyObject* py_getImageValue(PyObject *self, PyObject *args)
181{
182 return py_getStringValue(self, args, "ImageLabel");
183}
184
185PyObject* py_setImageValue(PyObject *self, PyObject *args)
186{
187 return py_setStringValue(self, args, "ImageLabel");
188}
189
190PyObject* py_getImageSensor(PyObject *self, PyObject *args)
191{
192 return py_getSensor(self, args, "ImageLabel");
193}
194
195PyObject* py_setImageSensor(PyObject *self, PyObject *args)
196{
197 return py_setSensor(self, args, "ImageLabel");
198}
199
200PyObject* py_removeImageEffects(PyObject *, PyObject *args)
201{
202 long widget, meter;
203 if (!PyArg_ParseTuple(args, (char*)"ll:removeImageEffects", &widget, &meter))
204 return NULL;
205 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
206 return NULL;
207 ((ImageLabel*)meter)->removeEffects();
208 return Py_BuildValue((char*)"l", 1);
209}
210
211PyObject* py_changeImageIntensity(PyObject *, PyObject *args)
212{
213 long widget, meter;
214 long millisec = 0;
215 float ratio;
216 if (!PyArg_ParseTuple(args, (char*)"llf|l:changeImageIntensity", &widget, &meter,
217 &ratio, &millisec))
218 return NULL;
219 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
220 return NULL;
221 ((ImageLabel*)meter)->intensity(ratio, millisec);
222 return Py_BuildValue((char*)"l", 1);
223}
224
225PyObject* py_changeImageChannelIntensity(PyObject *, PyObject *args)
226{
227 long widget, meter;
228 float ratio;
229 char* channel;
230 long millisec = 0;
231 if (!PyArg_ParseTuple(args, (char*)"llfs|l:changeImageChannelIntensity", &widget,
232 &meter, &ratio, &channel, &millisec))
233 return NULL;
234 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
235 return NULL;
236 ((ImageLabel*)meter)->channelIntensity(ratio, channel, millisec);
237 return Py_BuildValue((char*)"l", 1);
238}
239
240PyObject* py_changeImageToGray(PyObject *, PyObject *args)
241{
242 long widget, meter;
243 long millisec = 0;
244 if (!PyArg_ParseTuple(args, (char*)"ll|l:changeImageToGray", &widget, &meter,
245 &millisec))
246 return NULL;
247 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
248 return NULL;
249 ((ImageLabel*)meter)->toGray(millisec);
250 return Py_BuildValue((char*)"l", 1);
251}
252
253PyObject* py_removeImageTransformations(PyObject *, PyObject *args)
254{
255 long widget, meter;
256 if (!PyArg_ParseTuple(args, (char*)"ll:removeImageTransformations", &widget, &meter))
257 return NULL;
258 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
259 return NULL;
260 ((ImageLabel*)meter)->removeImageTransformations();
261 return Py_BuildValue((char*)"l", 1);
262}
263
264PyObject* py_rotateImage(PyObject *, PyObject *args)
265{
266 long widget, meter;
267 long deg;
268 if (!PyArg_ParseTuple(args, (char*)"lll:rotateImage", &widget, &meter, &deg))
269 return NULL;
270 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
271 return NULL;
272 ((ImageLabel*)meter)->rotate((int)deg);
273 return Py_BuildValue((char*)"l", 1);
274}
275
276PyObject* py_getImageHeight(PyObject *, PyObject *args)
277{
278 long widget, meter;
279 if (!PyArg_ParseTuple(args, (char*)"ll:getImageHeight", &widget, &meter))
280 return NULL;
281 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
282 return NULL;
283 return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getHeight());
284}
285
286PyObject* py_getImageWidth(PyObject *, PyObject *args)
287{
288 long widget, meter;
289 if (!PyArg_ParseTuple(args, (char*)"ll:getImageWidth", &widget, &meter))
290 return NULL;
291 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
292 return NULL;
293 return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getWidth());
294}
295
296PyObject* py_resizeImageSmooth(PyObject *, PyObject *args)
297{
298 long widget, meter;
299 long w, h;
300 if (!PyArg_ParseTuple(args, (char*)"llll:resizeImageSmooth", &widget, &meter,
301 &w, &h))
302 return NULL;
303 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
304 return NULL;
305 ((ImageLabel*)meter)->smoothScale((int)w, (int)h);
306 return Py_BuildValue((char*)"l", 1);
307}
308
309PyObject* py_resizeImage(PyObject *, PyObject *args)
310{
311 long widget, meter, w, h;
312 if (!PyArg_ParseTuple(args, (char*)"llll:resizeImage", &widget, &meter,
313 &w, &h))
314 return NULL;
315 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
316 return NULL;
317 ((ImageLabel*)meter)->scale((int)w, (int)h);
318 return Py_BuildValue((char*)"l", 1);
319}
320
321PyObject* py_addImageTooltip(PyObject *, PyObject *args)
322{
323 long widget, meter;
324 PyObject* t;
325 if (!PyArg_ParseTuple(args, (char*)"llO:addImageTooltip", &widget, &meter, &t))
326 return NULL;
327 if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
328 return NULL;
329 ((ImageLabel*)meter)->setTooltip(PyString2TQString(t));
330 return Py_BuildValue((char*)"l", 1);
331}
LineParser
Definition: lineparser.h:34
Task
A dynamic interface to a task (main window).
Definition: taskmanager.h:50
py_show
PyObject * py_show(PyObject *self, PyObject *args)
Misc/show.
Definition: misc_python.cpp:623
py_hide
PyObject * py_hide(PyObject *self, PyObject *args)
Misc/hide.
Definition: misc_python.cpp:641

superkaramba

Skip menu "superkaramba"
  • Main Page
  • Alphabetical List
  • Class List
  • File List
  • Class Members

superkaramba

Skip menu "superkaramba"
  • kcalc
  •   knumber
  • superkaramba
Generated for superkaramba by doxygen 1.9.4
This website is maintained by Timothy Pearson.