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 "config_python.h"
00035
00036
00037 long addMenuConfigOption(long widget, QString key, QString name)
00038 {
00039 karamba* currTheme = (karamba*)widget;
00040
00041 currTheme -> addMenuConfigOption(key, name);
00042
00043 return 1;
00044 }
00045
00046 PyObject* py_add_menu_config_option(PyObject *, PyObject *args)
00047 {
00048 long widget;
00049 char* key;
00050 PyObject* name;
00051
00052 if (!PyArg_ParseTuple(args, (char*)"lsO:addMenuConfigOption", &widget, &key, &name))
00053 return NULL;
00054 if (!checkKaramba(widget))
00055 return NULL;
00056
00057 QString k, n;
00058 k.setAscii(key);
00059 n = PyString2QString(name);
00060
00061 return Py_BuildValue((char*)"l", addMenuConfigOption(widget, k, n));
00062 }
00063
00064 long setMenuConfigOption(long widget, QString key, bool value)
00065 {
00066 karamba* currTheme = (karamba*)widget;
00067
00068 return currTheme -> setMenuConfigOption(key, value);
00069 }
00070
00071 PyObject* py_set_menu_config_option(PyObject *, PyObject *args)
00072 {
00073 long widget;
00074 char* key;
00075 int value;
00076
00077 if (!PyArg_ParseTuple(args, (char*)"lsi:setMenuConfigOption", &widget, &key, &value))
00078 return NULL;
00079 if (!checkKaramba(widget))
00080 return NULL;
00081
00082 QString k;
00083 k.setAscii(key);
00084
00085 return Py_BuildValue((char*)"l", setMenuConfigOption(widget, k, (bool)value));
00086 }
00087
00088 long readMenuConfigOption(long widget, QString key)
00089 {
00090 karamba* currTheme = (karamba*)widget;
00091
00092 return currTheme -> readMenuConfigOption(key);
00093 }
00094
00095 PyObject* py_read_menu_config_option(PyObject *, PyObject *args)
00096 {
00097 long widget;
00098 char* key;
00099
00100 if (!PyArg_ParseTuple(args, (char*)"ls:readMenuConfigOption", &widget, &key))
00101 return NULL;
00102 if (!checkKaramba(widget))
00103 return NULL;
00104
00105 QString k;
00106 k.setAscii(key);
00107
00108 return Py_BuildValue((char*)"l", readMenuConfigOption(widget, k));
00109 }
00110
00111
00112 long writeConfigEntry(long widget, QString key, QString value)
00113 {
00114 karamba* currTheme = (karamba*)widget;
00115
00116 currTheme -> config -> setGroup("theme");
00117 currTheme -> config -> writeEntry(key, value);
00118
00119 return 1;
00120 }
00121
00122 PyObject* py_write_config_entry(PyObject *, PyObject *args)
00123 {
00124 long widget;
00125 char* key;
00126 char* value;
00127
00128 if (!PyArg_ParseTuple(args, (char*)"lss:writeConfigEntry", &widget, &key, &value))
00129 return NULL;
00130 if (!checkKaramba(widget))
00131 return NULL;
00132 QString k, v;
00133 k.setAscii(key);
00134 v.setAscii(value);
00135
00136 return Py_BuildValue((char*)"l", writeConfigEntry(widget, k, value));
00137 }
00138
00139
00140 QVariant readConfigEntry(long widget, QString key)
00141 {
00142 karamba* currTheme = (karamba*)widget;
00143
00144 currTheme -> config -> setGroup("theme");
00145 return currTheme -> config -> readEntry(key);
00146 }
00147
00148 PyObject* py_read_config_entry(PyObject *, PyObject *args)
00149 {
00150 long widget;
00151 char* key;
00152 if (!PyArg_ParseTuple(args, (char*)"ls:readConfigEntry", &widget, &key))
00153 return NULL;
00154 if (!checkKaramba(widget))
00155 return NULL;
00156 QString k;
00157 k.setAscii(key);
00158
00159 QVariant entry = readConfigEntry(widget, k);
00160 QString type;
00161 type.setAscii(entry.typeName());
00162
00163 if (type == "Bool")
00164 {
00165 return Py_BuildValue((char*)"l", (int)entry.toBool());
00166 }
00167
00168 bool isint = false;
00169 int i = entry.toInt(&isint);
00170 if (isint)
00171 {
00172 return Py_BuildValue((char*)"l", i);
00173 }
00174
00175 if (type == "QString")
00176 {
00177 return Py_BuildValue((char*)"s", entry.toString().ascii());
00178 }
00179
00180 return NULL;
00181 }
00182