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 "karamba.h"
00032 #include "meter.h"
00033 #include "meter_python.h"
00034 #include "widget_python.h"
00035
00036
00037 int getWidgetXCoordinate(long widget)
00038 {
00039 karamba* currTheme = (karamba*)widget;
00040 return currTheme->x();
00041 }
00042
00043
00044 int getWidgetYCoordinate(long widget)
00045 {
00046 karamba* currTheme = (karamba*)widget;
00047 return currTheme->y();
00048 }
00049
00050 PyObject* py_get_widget_position(PyObject *, PyObject *args)
00051 {
00052 long widget;
00053 if(!PyArg_ParseTuple(args, (char*)"l:getWidgetPosition", &widget))
00054 return NULL;
00055 if (!checkKaramba(widget))
00056 return NULL;
00057 return Py_BuildValue((char*)"(i,i)", getWidgetXCoordinate(widget),
00058 getWidgetYCoordinate(widget));
00059 }
00060
00061
00062 long createWidgetMask(long widget, char* path)
00063 {
00064 karamba* currTheme = (karamba*)widget;
00065 QBitmap bm;
00066 QString maskpath;
00067 QString rootPath;
00068 rootPath.setAscii(currTheme->theme().path().ascii());
00069
00070 currTheme->clearMask();
00071
00072 maskpath.setAscii(path);
00073 rootPath.append(maskpath.ascii());
00074
00075 if(currTheme->theme().isZipTheme())
00076 {
00077 QByteArray ba = currTheme->theme().readThemeFile(path);
00078 bm.loadFromData(ba);
00079 }
00080 else
00081 {
00082 bm.load(rootPath);
00083 }
00084 currTheme->setMask(bm);
00085
00086 return (long)currTheme->widgetMask;
00087 }
00088
00089 PyObject* py_create_widget_mask(PyObject *, PyObject *args)
00090 {
00091 long widget;
00092 char *text;
00093 if (!PyArg_ParseTuple(args, (char*)"ls:createWidgetMask", &widget, &text))
00094 return NULL;
00095 if (!checkKaramba(widget))
00096 return NULL;
00097 return Py_BuildValue((char*)"l", createWidgetMask(widget, text));
00098 }
00099
00100
00101 long redrawWidgetBackground(long widget)
00102 {
00103 karamba* currTheme = (karamba*)widget;
00104 currTheme->kroot->repaint(true);
00105 return 1;
00106 }
00107
00108 PyObject* py_redraw_widget_background(PyObject *, PyObject *args)
00109 {
00110 long widget;
00111 if (!PyArg_ParseTuple(args, (char*)"l:redrawWidgetBackground", &widget))
00112 return NULL;
00113 if (!checkKaramba(widget))
00114 return NULL;
00115 return Py_BuildValue((char*)"l", redrawWidgetBackground(widget));
00116 }
00117
00118
00119 long redrawWidget(long widget)
00120 {
00121 karamba* currTheme = (karamba*)widget;
00122 currTheme->externalStep();
00123 return 1;
00124 }
00125
00126 PyObject* py_redraw_widget(PyObject *, PyObject *args)
00127 {
00128 long widget;
00129 if (!PyArg_ParseTuple(args, (char*)"l:redrawWidget", &widget))
00130 return NULL;
00131 if (!checkKaramba(widget))
00132 return NULL;
00133 return Py_BuildValue((char*)"l", redrawWidget(widget));
00134 }
00135
00136
00137 long resizeWidget(long widget, long x, long y)
00138 {
00139 karamba* currTheme = (karamba*)widget;
00140
00141 currTheme->setFixedSize((int)x,(int)y);
00142
00143 return 1;
00144 }
00145
00146 PyObject* py_resize_widget(PyObject *, PyObject *args)
00147 {
00148 long widget, x, y;
00149 if (!PyArg_ParseTuple(args, (char*)"lll:resizeWidget", &widget, &x, &y))
00150 return NULL;
00151 if (!checkKaramba(widget))
00152 return NULL;
00153 return Py_BuildValue((char*)"l", resizeWidget(widget, x, y));
00154 }
00155
00156
00157 long moveWidget(long widget, long x, long y)
00158 {
00159 karamba* currTheme = (karamba*)widget;
00160 currTheme->move((int)x, (int)y);
00161 return 1;
00162 }
00163
00164 PyObject* py_move_widget(PyObject *, PyObject *args)
00165 {
00166 long widget, x, y;
00167 if (!PyArg_ParseTuple(args, (char*)"lll:moveWidget", &widget, &x, &y))
00168 return NULL;
00169 if (!checkKaramba(widget))
00170 return NULL;
00171 return Py_BuildValue((char*)"l", moveWidget(widget, x, y));
00172 }
00173
00174
00175 long widgetSetOnTop(long widget, bool b) {
00176 karamba* currTheme = (karamba*)widget;
00177
00178 if (currTheme != 0)
00179 {
00180 currTheme->setAlwaysOnTop(b);
00181 }
00182 return 1;
00183 }
00184
00185 PyObject* py_set_widget_on_top(PyObject *, PyObject *args)
00186 {
00187 long widget;
00188 long b;
00189 if (!PyArg_ParseTuple(args, (char*)"ll:setWidgetOnTop", &widget, &b ))
00190 return NULL;
00191 return Py_BuildValue((char*)"l", widgetSetOnTop(widget, b));
00192 }
00193
00194
00195 long toggleWidgetRedraw(long widget, bool b)
00196 {
00197 karamba* currTheme = (karamba*)widget;
00198 if (currTheme != 0)
00199 {
00200 currTheme->toggleWidgetUpdate( b );
00201 }
00202 return 0;
00203 }
00204
00205 PyObject* py_toggle_widget_redraw(PyObject *, PyObject *args)
00206 {
00207 long widget, b;
00208
00209 if (!PyArg_ParseTuple(args, (char*)"ll:toggleWidgetRedraw", &widget, &b ))
00210 return NULL;
00211 if (!checkKaramba(widget))
00212 return NULL;
00213 return Py_BuildValue((char*)"l", toggleWidgetRedraw(widget, b));
00214 }