• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeutils API Reference
  • KDE Home
  • Contact Us
 

superkaramba

  • sources
  • kde-4.12
  • kdeutils
  • superkaramba
  • src
  • python
python/imagelabel.cpp
Go to the documentation of this file.
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 #if defined(_XOPEN_SOURCE) && !defined(__SUNPRO_CC)
26 #undef _XOPEN_SOURCE
27 #endif
28 
29 #include "python/imagelabel.h"
30 
31 #include <Python.h>
32 #include <qobject.h>
33 #include <QPixmap>
34 #include "karamba.h"
35 #include "meters/imagelabel.h"
36 #include "python/meter.h"
37 #include "lineparser.h"
38 
39 ImageLabel* createImageLabel(Karamba *theme, long x, long y,
40  char* path, bool bg)
41 {
42  QString file;
43  ImageLabel *tmp = new ImageLabel(theme, x, y, 0, 0);
44 
45  if (path) {
46  file = QString::fromAscii(path);
47  tmp->setValue(file);
48  }
49  tmp->setBackground(bg);
50  theme->setSensor(LineParser(file), tmp);
51  theme->addToGroup(tmp);
52 
53  return tmp;
54 }
55 
56 PyObject* py_createImage(PyObject *, PyObject *args)
57 {
58  long widget, x, y;
59  char *text;
60  if (!PyArg_ParseTuple(args, (char*)"llls:createImage", &widget, &x, &y, &text))
61  return NULL;
62  if (!checkKaramba(widget))
63  return NULL;
64 
65  ImageLabel *tmp = createImageLabel((Karamba*)widget, x, y, text, 0);
66  return (Py_BuildValue((char*)"l", (long)tmp));
67 }
68 
69 PyObject* py_createBackgroundImage(PyObject *, PyObject *args)
70 {
71  long widget, x, y;
72  char *text;
73  if (!PyArg_ParseTuple(args, (char*)"llls:createBackgroundImage", &widget, &x, &y,
74  &text))
75  return NULL;
76  if (!checkKaramba(widget))
77  return NULL;
78  ImageLabel *tmp = createImageLabel((Karamba*)widget, x, y, text, 1);
79  tmp->setZValue(-1);
80  return (Py_BuildValue((char*)"l", (long)tmp));
81 }
82 
83 //Matthew Kay: new function for creating icons for tasks
88 PyObject* py_createTaskIcon(PyObject *, PyObject *args)
89 {
90  long widget, x, y;
91  long ctask;
92  if (!PyArg_ParseTuple(args, (char*)"llll:createTaskIcon", &widget, &x, &y, &ctask))
93  return NULL;
94  if (!checkKaramba(widget))
95  return NULL;
96 
97  //get the specified task and insure it exists
98  QList<Task::TaskPtr> tasks = TaskManager::self()->tasks().values();
99  Task::TaskPtr task;
100  Task::TaskPtr currTask;
101  foreach(task, tasks) {
102  if ((long)task.data() == (long)ctask) {
103  //task found
104  currTask = task;
105  break;
106  }
107  }
108 
109  if (currTask.isNull()) {
110  //no task was found
111  qWarning("Task not found.");
112  return (long)NULL ;
113  }
114 
115  //retrieve the QPixmap that represents this image
116  QPixmap iconPixmap = KWindowSystem::icon(currTask->window());
117 
118  ImageLabel *tmp = createImageLabel((Karamba*)widget, x, y, 0, 0);
119  tmp->setValue(iconPixmap);
120  return (Py_BuildValue((char*)"l", (long)tmp));
121 }
122 
123 PyObject* py_deleteImage(PyObject *, PyObject *args)
124 {
125  long widget, meter;
126  if (!PyArg_ParseTuple(args, (char*)"ll:deleteImage", &widget, &meter))
127  return NULL;
128  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
129  return NULL;
130 
131  ((Karamba*)widget)->deleteMeterFromSensors((Meter*)meter);
132  return Py_BuildValue((char*)"l",
133  ((Karamba*)widget)->removeMeter((Meter*)meter));
134 }
135 
136 PyObject* py_getThemeImage(PyObject *self, PyObject *args)
137 {
138  return py_getThemeMeter(self, args, "ImageLabel");
139 }
140 
141 PyObject* py_getImagePos(PyObject *self, PyObject *args)
142 {
143  return py_getPos(self, args, "ImageLabel");
144 }
145 
146 PyObject* py_getImageSize(PyObject *self, PyObject *args)
147 {
148  return py_getSize(self, args, "ImageLabel");
149 }
150 
151 PyObject* py_moveImage(PyObject *self, PyObject *args)
152 {
153  return py_move(self, args, "ImageLabel");
154 }
155 
156 PyObject* py_hideImage(PyObject *self, PyObject *args)
157 {
158  return py_hide(self, args, "ImageLabel");
159 }
160 
161 PyObject* py_showImage(PyObject *self, PyObject *args)
162 {
163  return py_show(self, args, "ImageLabel");
164 }
165 
166 PyObject* py_getImageValue(PyObject *self, PyObject *args)
167 {
168  return py_getStringValue(self, args, "ImageLabel");
169 }
170 
171 PyObject* py_setImageValue(PyObject *self, PyObject *args)
172 {
173  return py_setStringValue(self, args, "ImageLabel");
174 }
175 
176 PyObject* py_getImageSensor(PyObject *self, PyObject *args)
177 {
178  return py_getSensor(self, args, "ImageLabel");
179 }
180 
181 PyObject* py_setImageSensor(PyObject *self, PyObject *args)
182 {
183  return py_setSensor(self, args, "ImageLabel");
184 }
185 
186 PyObject* py_removeImageEffects(PyObject *, PyObject *args)
187 {
188  long widget, meter;
189  if (!PyArg_ParseTuple(args, (char*)"ll:removeImageEffects", &widget, &meter))
190  return NULL;
191  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
192  return NULL;
193  ((ImageLabel*)meter)->removeEffects();
194  return Py_BuildValue((char*)"l", 1);
195 }
196 
197 PyObject* py_changeImageIntensity(PyObject *, PyObject *args)
198 {
199  long widget, meter;
200  long millisec = 0;
201  float ratio;
202  if (!PyArg_ParseTuple(args, (char*)"llf|l:changeImageIntensity", &widget, &meter,
203  &ratio, &millisec))
204  return NULL;
205  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
206  return NULL;
207  ((ImageLabel*)meter)->intensity(ratio, millisec);
208  return Py_BuildValue((char*)"l", 1);
209 }
210 
211 PyObject* py_changeImageChannelIntensity(PyObject *, PyObject *args)
212 {
213  long widget, meter;
214  float ratio;
215  char* channel;
216  long millisec = 0;
217  if (!PyArg_ParseTuple(args, (char*)"llfs|l:changeImageChannelIntensity", &widget,
218  &meter, &ratio, &channel, &millisec))
219  return NULL;
220  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
221  return NULL;
222  ((ImageLabel*)meter)->channelIntensity(ratio, channel, millisec);
223  return Py_BuildValue((char*)"l", 1);
224 }
225 
226 PyObject* py_changeImageToGray(PyObject *, PyObject *args)
227 {
228  long widget, meter;
229  long millisec = 0;
230  if (!PyArg_ParseTuple(args, (char*)"ll|l:changeImageToGray", &widget, &meter,
231  &millisec))
232  return NULL;
233  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
234  return NULL;
235  ((ImageLabel*)meter)->toGray(millisec);
236  return Py_BuildValue((char*)"l", 1);
237 }
238 
239 PyObject* py_removeImageTransformations(PyObject *, PyObject *args)
240 {
241  long widget, meter;
242  if (!PyArg_ParseTuple(args, (char*)"ll:removeImageTransformations", &widget, &meter))
243  return NULL;
244  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
245  return NULL;
246  ((ImageLabel*)meter)->removeImageTransformations();
247  return Py_BuildValue((char*)"l", 1);
248 }
249 
250 PyObject* py_rotateImage(PyObject *, PyObject *args)
251 {
252  long widget, meter;
253  long deg;
254  if (!PyArg_ParseTuple(args, (char*)"lll:rotateImage", &widget, &meter, &deg))
255  return NULL;
256  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
257  return NULL;
258  ((ImageLabel*)meter)->rotate((int)deg);
259  return Py_BuildValue((char*)"l", 1);
260 }
261 
262 PyObject* py_getImageHeight(PyObject *, PyObject *args)
263 {
264  long widget, meter;
265  if (!PyArg_ParseTuple(args, (char*)"ll:getImageHeight", &widget, &meter))
266  return NULL;
267  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
268  return NULL;
269  return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getHeight());
270 }
271 
272 PyObject* py_getImageWidth(PyObject *, PyObject *args)
273 {
274  long widget, meter;
275  if (!PyArg_ParseTuple(args, (char*)"ll:getImageWidth", &widget, &meter))
276  return NULL;
277  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
278  return NULL;
279  return Py_BuildValue((char*)"l", ((ImageLabel*)meter)->getWidth());
280 }
281 
282 PyObject* py_resizeImageSmooth(PyObject *, PyObject *args)
283 {
284  long widget, meter;
285  long w, h;
286  if (!PyArg_ParseTuple(args, (char*)"llll:resizeImageSmooth", &widget, &meter,
287  &w, &h))
288  return NULL;
289  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
290  return NULL;
291 
292  ((Karamba*)widget)->scaleImageLabel((ImageLabel*)meter,
293  (int)w, (int)h);
294 
295  return Py_BuildValue((char*)"l", 1);
296 }
297 
298 PyObject* py_resizeImage(PyObject *, PyObject *args)
299 {
300  long widget, meter, w, h;
301  if (!PyArg_ParseTuple(args, (char*)"llll:resizeImage", &widget, &meter,
302  &w, &h))
303  return NULL;
304  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
305  return NULL;
306  ((const Karamba*)widget)->scaleImageLabel(
307  (ImageLabel*)meter, (int)w, (int)h);
308  return Py_BuildValue((char*)"l", 1);
309 }
310 
311 PyObject* py_addImageTooltip(PyObject *, PyObject *args)
312 {
313  long widget, meter;
314  PyObject* t;
315  if (!PyArg_ParseTuple(args, (char*)"llO:addImageTooltip", &widget, &meter, &t))
316  return NULL;
317  if (!checkKarambaAndMeter(widget, meter, "ImageLabel"))
318  return NULL;
319  ((ImageLabel*)meter)->setTooltip(PyString2QString(t));
320  return Py_BuildValue((char*)"l", 1);
321 }
py_getThemeMeter
PyObject * py_getThemeMeter(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:161
py_getImageWidth
PyObject * py_getImageWidth(PyObject *, PyObject *args)
Image/getImageWidth.
Definition: python/imagelabel.cpp:272
py_move
PyObject * py_move(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:212
PyObject
struct _object PyObject
Definition: python/karamba.h:35
py_getImageSize
PyObject * py_getImageSize(PyObject *self, PyObject *args)
Image/getImageSize.
Definition: python/imagelabel.cpp:146
py_createBackgroundImage
PyObject * py_createBackgroundImage(PyObject *, PyObject *args)
Image/createBackgroundImage.
Definition: python/imagelabel.cpp:69
PyString2QString
QString PyString2QString(PyObject *text)
Definition: python/meter.cpp:92
py_removeImageEffects
PyObject * py_removeImageEffects(PyObject *, PyObject *args)
Image/removeImageEffects.
Definition: python/imagelabel.cpp:186
py_getImageSensor
PyObject * py_getImageSensor(PyObject *self, PyObject *args)
Image/getImageSensor.
Definition: python/imagelabel.cpp:176
meter.h
py_hide
PyObject * py_hide(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:225
imagelabel.h
py_getImageValue
PyObject * py_getImageValue(PyObject *self, PyObject *args)
Image/getImagePath.
Definition: python/imagelabel.cpp:166
karamba.h
createImageLabel
ImageLabel * createImageLabel(Karamba *theme, long x, long y, char *path, bool bg)
Definition: python/imagelabel.cpp:39
py_getSensor
PyObject * py_getSensor(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:316
py_changeImageIntensity
PyObject * py_changeImageIntensity(PyObject *, PyObject *args)
Image/changeImageIntensity.
Definition: python/imagelabel.cpp:197
py_getSize
PyObject * py_getSize(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:177
py_addImageTooltip
PyObject * py_addImageTooltip(PyObject *, PyObject *args)
Image/addImageTooltip.
Definition: python/imagelabel.cpp:311
Karamba
Definition: karamba.h:52
py_showImage
PyObject * py_showImage(PyObject *self, PyObject *args)
Image/showImage.
Definition: python/imagelabel.cpp:161
lineparser.h
py_deleteImage
PyObject * py_deleteImage(PyObject *, PyObject *args)
Image/deleteImage.
Definition: python/imagelabel.cpp:123
LineParser
Definition: lineparser.h:6
py_createTaskIcon
PyObject * py_createTaskIcon(PyObject *, PyObject *args)
creates the icon for the specified task as a Karamba image
Definition: python/imagelabel.cpp:88
py_changeImageToGray
PyObject * py_changeImageToGray(PyObject *, PyObject *args)
Image/changeImageToGray.
Definition: python/imagelabel.cpp:226
TaskManager::tasks
Task::Dict tasks() const
Returns a list of all current tasks.
Definition: taskmanager.h:636
py_hideImage
PyObject * py_hideImage(PyObject *self, PyObject *args)
Image/hideImage.
Definition: python/imagelabel.cpp:156
checkKaramba
bool checkKaramba(long widget)
Definition: python/meter.cpp:26
imagelabel.h
py_resizeImageSmooth
PyObject * py_resizeImageSmooth(PyObject *, PyObject *args)
Image/resizeImageSmooth.
Definition: python/imagelabel.cpp:282
ImageLabel::setValue
void setValue(const QString &imagePath)
Definition: meters/imagelabel.cpp:299
checkKarambaAndMeter
bool checkKarambaAndMeter(long widget, long meter, const char *type)
Definition: python/meter.cpp:74
py_rotateImage
PyObject * py_rotateImage(PyObject *, PyObject *args)
Image/rotateImage.
Definition: python/imagelabel.cpp:250
py_setImageSensor
PyObject * py_setImageSensor(PyObject *self, PyObject *args)
Image/setImageSensor.
Definition: python/imagelabel.cpp:181
py_show
PyObject * py_show(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:236
py_getPos
PyObject * py_getPos(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:201
TaskManager::self
static TaskManager * self()
Definition: taskmanager.cpp:49
ImageLabel::setBackground
void setBackground(int b)
Definition: meters/imagelabel.cpp:514
py_setImageValue
PyObject * py_setImageValue(PyObject *self, PyObject *args)
Image/setImagePath.
Definition: python/imagelabel.cpp:171
py_getThemeImage
PyObject * py_getThemeImage(PyObject *self, PyObject *args)
Image/getThemeImage.
Definition: python/imagelabel.cpp:136
py_setSensor
PyObject * py_setSensor(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:328
py_resizeImage
PyObject * py_resizeImage(PyObject *, PyObject *args)
Image/resizeImage.
Definition: python/imagelabel.cpp:298
Meter
Definition: meters/meter.h:23
py_setStringValue
PyObject * py_setStringValue(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:279
py_getImagePos
PyObject * py_getImagePos(PyObject *self, PyObject *args)
Image/getImagePos.
Definition: python/imagelabel.cpp:141
py_removeImageTransformations
PyObject * py_removeImageTransformations(PyObject *, PyObject *args)
Image/removeImageTransformations.
Definition: python/imagelabel.cpp:239
py_moveImage
PyObject * py_moveImage(PyObject *self, PyObject *args)
Image/moveImage.
Definition: python/imagelabel.cpp:151
py_changeImageChannelIntensity
PyObject * py_changeImageChannelIntensity(PyObject *, PyObject *args)
Image/changeImageChannelIntensity.
Definition: python/imagelabel.cpp:211
Karamba::setSensor
void setSensor(const LineParser &lineParser, Meter *meter)
Definition: karamba.cpp:1065
py_createImage
PyObject * py_createImage(PyObject *, PyObject *args)
Image/createImage.
Definition: python/imagelabel.cpp:56
py_getStringValue
PyObject * py_getStringValue(PyObject *, PyObject *args, QString type)
Definition: python/meter.cpp:268
Task::TaskPtr
KSharedPtr< Task > TaskPtr
Definition: taskmanager.h:97
py_getImageHeight
PyObject * py_getImageHeight(PyObject *, PyObject *args)
Image/getImageHeight.
Definition: python/imagelabel.cpp:262
ImageLabel
Definition: meters/imagelabel.h:108
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:07:19 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

superkaramba

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

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • kremotecontrol
  • ktimer
  • kwallet
  • superkaramba
  • sweeper

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal