• 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 
37 ImageLabel* 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 
68 PyObject* 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 
81 PyObject* 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
99 PyObject* 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 
135 PyObject* 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 
150 PyObject* py_getThemeImage(PyObject *self, PyObject *args)
151 {
152  return py_getThemeMeter(self, args, "ImageLabel");
153 }
154 
155 PyObject* py_getImagePos(PyObject *self, PyObject *args)
156 {
157  return py_getPos(self, args, "ImageLabel");
158 }
159 
160 PyObject* py_getImageSize(PyObject *self, PyObject *args)
161 {
162  return py_getSize(self, args, "ImageLabel");
163 }
164 
165 PyObject* py_moveImage(PyObject *self, PyObject *args)
166 {
167  return py_move(self, args, "ImageLabel");
168 }
169 
170 PyObject* py_hideImage(PyObject *self, PyObject *args)
171 {
172  return py_hide(self, args, "ImageLabel");
173 }
174 
175 PyObject* py_showImage(PyObject *self, PyObject *args)
176 {
177  return py_show(self, args, "ImageLabel");
178 }
179 
180 PyObject* py_getImageValue(PyObject *self, PyObject *args)
181 {
182  return py_getStringValue(self, args, "ImageLabel");
183 }
184 
185 PyObject* py_setImageValue(PyObject *self, PyObject *args)
186 {
187  return py_setStringValue(self, args, "ImageLabel");
188 }
189 
190 PyObject* py_getImageSensor(PyObject *self, PyObject *args)
191 {
192  return py_getSensor(self, args, "ImageLabel");
193 }
194 
195 PyObject* py_setImageSensor(PyObject *self, PyObject *args)
196 {
197  return py_setSensor(self, args, "ImageLabel");
198 }
199 
200 PyObject* 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 
211 PyObject* 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 
225 PyObject* 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 
240 PyObject* 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 
253 PyObject* 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 
264 PyObject* 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 
276 PyObject* 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 
286 PyObject* 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 
296 PyObject* 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 
309 PyObject* 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 
321 PyObject* 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 }
py_hide
PyObject * py_hide(PyObject *self, PyObject *args)
Misc/hide.
Definition: misc_python.cpp:641
py_show
PyObject * py_show(PyObject *self, PyObject *args)
Misc/show.
Definition: misc_python.cpp:623
LineParser
Definition: lineparser.h:33
Task
A dynamic interface to a task (main window).
Definition: taskmanager.h:49

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.8.13
This website is maintained by Timothy Pearson.