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

superkaramba

imagelabel.cpp

Go to the documentation of this file.
00001 /****************************************************************************
00002 *  imagelabel_python.cpp  -  Imagelabel functions for python api
00003 *
00004 *  Copyright (C) 2003 Hans Karlsson <karlsson.h@home.se>
00005 *  Copyright (C) 2003-2004 Adam Geitgey <adam@rootnode.org>
00006 *  Copyright (c) 2004 Petri Damst� <damu@iki.fi>
00007 *
00008 *  This file is part of SuperKaramba.
00009 *
00010 *  SuperKaramba is free software; you can redistribute it and/or modify
00011 *  it under the terms of the GNU General Public License as published by
00012 *  the Free Software Foundation; either version 2 of the License, or
00013 *  (at your option) any later version.
00014 *
00015 *  SuperKaramba is distributed in the hope that it will be useful,
00016 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 *  GNU General Public License for more details.
00019 *
00020 *  You should have received a copy of the GNU General Public License
00021 *  along with SuperKaramba; if not, write to the Free Software
00022 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
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 //Matthew Kay: new function for creating icons for tasks
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     //get the specified task and insure it exists
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             //task found
00103             currTask = task;
00104             break;
00105         }
00106     }
00107 
00108     if (currTask.isNull()) {
00109         //no task was found
00110         qWarning("Task not found.");
00111         return (long)NULL ;
00112     }
00113 
00114     //retrieve the QPixmap that represents this image
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, &deg))
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 }

superkaramba

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

kdeutils

Skip menu "kdeutils"
  • ark
  • kcalc
  • kcharselect
  • kdelirc
  • kdessh
  • kdf
  • kfloppy
  • kgpg
  • kjots
  • klaptopdaemon
  • kmilo
  • ksim
  • ktimer
  • kwallet
  • superkaramba
Generated for kdeutils by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal