00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KARAMBAINTERFACE_H_
00022 #define KARAMBAINTERFACE_H_
00023
00024 #include <QObject>
00025
00026 #include <kross/core/krossconfig.h>
00027 #include <kross/core/manager.h>
00028 #include <kross/core/action.h>
00029
00030 #include "superkaramba_export.h"
00031 #include "karamba.h"
00032 #include "themelocale.h"
00033
00034 #include "meters/bar.h"
00035 #include "meters/graph.h"
00036 #include "meters/imagelabel.h"
00037 #include "meters/input.h"
00038 #include "meters/richtextlabel.h"
00039 #include "meters/textlabel.h"
00040 #include "meters/clickarea.h"
00041
00042 class SUPERKARAMBA_EXPORT KarambaInterface : public QObject
00043 {
00044 Q_OBJECT
00045
00046 public:
00047 KarambaInterface(Karamba *k);
00048 virtual ~KarambaInterface();
00049
00050 void startInterpreter();
00051 bool initInterpreter();
00052
00053
00054 void callInitWidget(Karamba *k);
00055 void callWidgetUpdated(Karamba *k);
00056 void callWidgetClosed(Karamba *k);
00057 void callMenuOptionChanged(Karamba *k, const QString &key, bool value);
00058 void callMenuItemClicked(Karamba* k, KMenu* menu, QAction* id);
00059 void callActiveTaskChanged(Karamba *k, Task* t);
00060 void callTaskAdded(Karamba *k, Task *t);
00061 void callTaskRemoved(Karamba *k, Task *t);
00062 void callStartupAdded(Karamba *k, Startup *t);
00063 void callStartupRemoved(Karamba *k, Startup *t);
00064 void callCommandFinished(Karamba *k, int pid);
00065 void callCommandOutput(Karamba *k, int pid, char* buffer);
00066 void callItemDropped(Karamba *k, const QString &text, int x, int y);
00067 void callMeterClicked(Karamba *k, Meter *m, int button);
00068 void callMeterClicked(Karamba *k, const QString &str, int button);
00069 void callWidgetClicked(Karamba *k, int x, int y, int button);
00070 void callDesktopChanged(Karamba *k, int desktop);
00071 void callWidgetMouseMoved(Karamba *k, int x, int y, int button);
00072 void callKeyPressed(Karamba *k, Meter *meter, const QString &key);
00073 void callThemeNotify(Karamba *k, const QString &sender, const QString &data);
00074 void callWallpaperChanged(Karamba *k, int desktop);
00075
00076 Q_SIGNALS:
00077 void initWidget(QObject*);
00078 void widgetUpdated(QObject*);
00079 void widgetClosed(QObject*);
00080 void menuItemClicked(QObject*, QObject*, QObject*);
00081 void menuOptionChanged(QObject*, QString, bool);
00082 void activeTaskChanged(QObject*, QObject*);
00083 void taskAdded(QObject*, QObject*);
00084 void taskRemoved(QObject*, QObject*);
00085 void startupAdded(QObject*, QObject*);
00086 void startupRemoved(QObject*, QObject*);
00087 void commandFinished(QObject*, int);
00088 void commandOutput(QObject*, int, QString);
00089 void itemDropped(QObject*, QString, int, int);
00090 void meterClicked(QObject*, QObject*, int);
00091 void meterClicked(QObject*, QString, int);
00092 void widgetClicked(QObject*, int, int, int);
00093 void desktopChanged(QObject*, int);
00094 void widgetMouseMoved(QObject*, int, int, int);
00095 void keyPressed(QObject*, QObject*, QString);
00096 void themeNotify(QObject*, QString, QString);
00097 void wallpaperChanged(QObject*, int);
00098
00099 private:
00101 class Private;
00103 Private* const d;
00104
00105 bool checkKaramba(const Karamba *k) const;
00106 bool checkMeter(const Karamba *k, const Meter *m, const QString &type) const;
00107 bool checkKarambaAndMeter(const Karamba *k, const Meter *m, const QString &type) const;
00108
00109 QVariantList getMeterMinMax(const Karamba *k, const Meter *m, const QString &type) const;
00110 QVariantList getMeterSize(const Karamba *k, const Meter *m, const QString &type) const;
00111 QVariantList getMeterPos(const Karamba *k, const Meter *m, const QString &type) const;
00112 QString getMeterSensor(const Karamba *k, const Meter *m, const QString &type) const;
00113 int getMeterValue(const Karamba *k, const Meter *m, const QString &type) const;
00114 QObject* getThemeMeter(const Karamba *k, const QString &meter, const QString &type) const;
00115 bool hideMeter(const Karamba *k, Meter *m, const QString &type) const;
00116 bool moveMeter(const Karamba *k, Meter *m, const QString &type, int x, int y) const;
00117 bool resizeMeter(const Karamba *k, Meter *m, const QString &type, int width, int height) const;
00118 bool setMeterMinMax(const Karamba *k, Meter *m, const QString &type, int min, int max) const;
00119 bool setMeterSensor(Karamba *k, Meter *m, const QString &type, const QString &sensor) const;
00120 QObject* setMeterValue(const Karamba *k, Meter *m, const QString &type, int value) const;
00121 bool showMeter(const Karamba *k, Meter *m, const QString &type) const;
00122 bool setMeterColor(const Karamba *k, Meter *m, const QString &type, int red, int green, int
00123 blue, int alpha = 255) const;
00124 QVariantList getMeterColor(const Karamba *k, const Meter *m, const QString &type) const;
00125 QString getMeterStringValue(const Karamba *k, const Meter *m, const QString &type) const;
00126 QObject* setMeterStringValue(const Karamba *k, Meter *m, const QString &type, const QString
00127 &value) const;
00128 bool menuExists(const Karamba* currTheme, const KMenu* menu) const;
00129
00130 public Q_SLOTS:
00131
00132 QObject* createBar(Karamba *k, int x, int y, int w, int h, const QString &path = "") const;
00133 bool deleteBar(Karamba *k, Bar *bar) const;
00134 bool setBarMinMax(const Karamba *k, Bar *bar, int min, int max) const;
00135 QVariantList getBarMinMax(const Karamba *k, const Bar *bar) const;
00136 bool moveBar(const Karamba *k, Bar *bar, int x, int y) const;
00137 QVariantList getBarPos(const Karamba *k, const Bar *bar) const;
00138 bool setBarSensor(Karamba *k, Bar *bar, const QString &sensor) const;
00139 QString getBarSensor(const Karamba *k, const Bar *bar) const;
00140 bool resizeBar(const Karamba *k, Bar *bar, int width, int height) const;
00141 QVariantList getBarSize(const Karamba *k, const Bar *bar) const;
00142 QObject* setBarValue(const Karamba *k, Bar *bar, int value) const;
00143 int getBarValue(const Karamba *k, const Bar *bar) const;
00144 QObject* getThemeBar(const Karamba *k, const QString &meter) const;
00145 bool hideBar(const Karamba *k, Bar *bar) const;
00146 bool showBar(const Karamba *k, Bar *bar) const;
00147 bool setBarVertical(const Karamba *k, Bar *bar, bool vert) const;
00148 bool getBarVertical(const Karamba *k, const Bar *bar) const;
00149 bool setBarImage(const Karamba *k, Bar *bar, const QString &image) const;
00150 QString getBarImage(const Karamba *k, const Bar *bar) const;
00151
00152
00153
00154 bool addMenuConfigOption(Karamba *k, const QString &key, const QString &name) const;
00155 QVariant readConfigEntry(const Karamba *k, const QString &key) const;
00156 bool readMenuConfigOption(const Karamba *k, const QString &key) const;
00157 bool setMenuConfigOption(Karamba *k, const QString &key, bool value) const;
00158 bool writeConfigEntry(const Karamba *k, const QString &key, const QVariant &value) const;
00159
00160
00161 QObject* createGraph(Karamba* k, int x, int y, int w, int h, int points) const;
00162 bool deleteGraph(Karamba *k, Graph *graph) const;
00163 bool setGraphMinMax(const Karamba *k, Graph *bar, int min, int max) const;
00164 QVariantList getGraphMinMax(const Karamba *k, const Graph *graph) const;
00165 bool moveGraph(const Karamba *k, Graph *graph, int x, int y) const;
00166 QVariantList getGraphPos(const Karamba *k, const Graph *graph) const;
00167 bool setGraphSensor(Karamba *k, Graph *graph, const QString &sensor) const;
00168 QString getGraphSensor(const Karamba *k, const Graph *graph) const;
00169 bool resizeGraph(const Karamba *k, Graph *graph, int width, int height) const;
00170 QVariantList getGraphSize(const Karamba *k, const Graph *graph) const;
00171 QObject* setGraphValue(const Karamba *k, Graph *graph, int value) const;
00172 int getGraphValue(const Karamba *k, const Graph *graph) const;
00173 QObject* getThemeGraph(const Karamba *k, const QString &meter) const;
00174 bool hideGraph(const Karamba *k, Graph *graph) const;
00175 bool showGraph(const Karamba *k, Graph *graph) const;
00176 bool setGraphColor(const Karamba *k, Graph *graph, int red, int green, int blue, int alpha=255) const;
00177 QVariantList getGraphColor(const Karamba *k, const Graph *graph) const;
00178
00179
00180 QObject* createImage(Karamba* k, int x, int y, const QString &image) const;
00181 QObject* createEmptyImage(Karamba* k, int x, int y, int w, int h) const;
00182 bool deleteImage(Karamba *k, ImageLabel *image) const;
00183 bool moveImage(Karamba *k, ImageLabel *image, int x, int y) const;
00184 QVariantList getImagePos(const Karamba *k, const ImageLabel *image) const;
00185 bool setImageSensor(Karamba *k, ImageLabel *image, const QString &sensor) const;
00186 QString getImageSensor(const Karamba *k, const ImageLabel *image) const;
00187 bool resizeImage(const Karamba *k, ImageLabel *image, int width, int height) const;
00188 QVariantList getImageSize(const Karamba *k, const ImageLabel *image) const;
00189 QObject* setImagePath(const Karamba *k, ImageLabel *image, const QString &path) const;
00190 QString getImagePath(const Karamba *k, const ImageLabel *image) const;
00191 QObject* getThemeImage(const Karamba *k, const QString &meter) const;
00192 bool hideImage(const Karamba *k, ImageLabel *image) const;
00193 bool showImage(const Karamba *k, ImageLabel *image) const;
00194 bool addImageTooltip(const Karamba *k, ImageLabel *image, const QString &text) const;
00195 bool changeImageChannelIntensity(const Karamba *k, ImageLabel *image, double ratio, const
00196 QString &channel, int ms = 0) const;
00197 bool changeImageIntensity(const Karamba *k, ImageLabel *image, double ratio, int ms = 0) const;
00198 bool changeImageToGray(const Karamba *k, ImageLabel *image, int ms = 0) const;
00199 bool changeImageAlpha(const Karamba *k, ImageLabel *image, int a, int r=-1, int g=-1, int b=-1, int ms = 0) const;
00200 QObject* createBackgroundImage(Karamba *k, int x, int y, const QString &imagePath) const;
00201 QObject* createTaskIcon(Karamba *k, int x, int y, int ctask) const;
00202 int getImageHeight(const Karamba *k, const ImageLabel *image) const;
00203 int getImageWidth(const Karamba *k, const ImageLabel *image) const;
00204 bool removeImageEffects(const Karamba *k, ImageLabel *image) const;
00205 bool removeImageTransformations(const Karamba *k, ImageLabel *image) const;
00206 bool resizeImageSmooth(Karamba *k, ImageLabel *image, int width, int height) const;
00207 bool rotateImage(const Karamba *k, ImageLabel *image, int deg) const;
00208 bool setPixel(Karamba *k, ImageLabel *image, int x, int y, int r, int g, int b, int a = 255);
00209 bool changeImageAnimation(Karamba *k, ImageLabel *image, bool enable) const;
00210 bool getImageAnimation(Karamba *k, ImageLabel *image) const;
00211 bool setImageElement(Karamba* k, ImageLabel *image, const QString &element) const;
00212 bool setImageElementAll(Karamba* k, ImageLabel *image) const;
00213 QString getImageElement(Karamba *k, ImageLabel *image) const;
00214
00215
00216 QObject* createInputBox(Karamba* k, int x, int y, int w, int h, const QString &text) const;
00217 bool deleteInputBox(Karamba *k, Input *input) const;
00218 bool moveInputBox(Karamba *k, Input *input, int x, int y) const;
00219 QVariantList getInputBoxPos(const Karamba *k, const Input *input) const;
00220 bool resizeInputBox(const Karamba *k, Input *input, int width, int height) const;
00221 QVariantList getInputBoxSize(const Karamba *k, const Input *input) const;
00222 QObject* changeInputBox(const Karamba *k, Input *input, const QString &text) const;
00223 QString getInputBoxValue(const Karamba *k, const Input *input) const;
00224 QObject* getThemeInputBox(const Karamba *k, const QString &meter) const;
00225 bool hideInputBox(const Karamba *k, Input *input) const;
00226 bool showInputBox(const Karamba *k, Input *input) const;
00227 bool changeInputBoxFont(const Karamba *k, Input *input, const QString &font) const;
00228 bool changeInputBoxFontColor(const Karamba *k, Input *input, int red, int green, int blue, int alpha=255) const;
00229 QString getInputBoxFont(const Karamba *k, const Input *input) const;
00230 QVariantList getInputBoxFontColor(const Karamba *k, const Input *input) const;
00231 bool changeInputBoxSelectionColor(const Karamba *k, Input *input, int red, int green, int blue, int alpha=255)
00232 const;
00233 QVariantList getInputBoxSelectionColor(const Karamba *k, const Input *input) const;
00234 bool changeInputBoxBackgroundColor(const Karamba *k, Input *input, int red, int green, int blue, int alpha=255)
00235 const;
00236 QVariantList getInputBoxBackgroundColor(const Karamba *k, const Input *input) const;
00237 bool changeInputBoxFrameColor(const Karamba *k, Input *input, int red, int green, int blue, int alpha=255)
00238 const;
00239 QVariantList getInputBoxFrameColor(const Karamba *k, const Input *input) const;
00240 bool changeInputBoxSelectedTextColor(const Karamba *k, Input *input, int red, int green, int
00241 blue, int alpha=255) const;
00242 QVariantList getInputBoxSelectedTextColor(const Karamba *k, const Input *input) const;
00243 bool changeInputBoxFontSize(const Karamba *k, Input *input, int size) const;
00244 int getInputBoxFontSize(const Karamba *k, const Input *input) const;
00245 bool setInputFocus(const Karamba *k, Input *input) const;
00246 bool clearInputFocus(const Karamba *k, Input *input) const;
00247 QObject* getInputFocus(const Karamba *k) const;
00248 int getInputBoxTextWidth(const Karamba *k, Input *input) const;
00249 bool changeInputBoxSelection(const Karamba *k, Input *input, int start, int length) const;
00250 QVariantList getInputBoxSelection(const Karamba *k, Input *input) const;
00251 bool clearInputBoxSelection(const Karamba *k, Input *input) const;
00252
00253
00254
00255 QObject* addMenuItem(Karamba *k, KMenu *menu, const QString &text, const QString &icon)
00256 const;
00257 QObject* addMenuSeparator(Karamba *k, KMenu *menu) const;
00258 QObject* createMenu(Karamba *k) const;
00259 bool deleteMenu(Karamba *k, KMenu *menu) const;
00260 bool popupMenu(const Karamba *k, KMenu *menu, int x, int y) const;
00261 bool removeMenuItem(Karamba *k, KMenu *menu, QAction *action) const;
00262
00263
00264 bool acceptDrops(Karamba *k) const;
00265 bool attachClickArea(const Karamba *k, Meter *m, const QString &leftButton = QString(),
00266 const QString &middleButton = QString(), const QString &rightButton =
00267 QString()) const;
00268 bool callTheme(Karamba *k, const QString &theme, const QString &info) const;
00269 bool changeInterval(Karamba *k, int interval) const;
00270 int execute(const QString &command) const;
00271 QObject* createClickArea(Karamba *k, int x, int y, int width, int height,
00272 const QString &onClick) const;
00273 QObject* createServiceClickArea(Karamba *k, int x, int y, int width, int height,
00274 const QString &name, const QString &exec, const QString &icon) const;
00275 int executeInteractive(Karamba *k, const QStringList &command);
00276 QString getIp(const Karamba *k, const QString &interface) const;
00277 int getNumberOfDesktops(const Karamba *k) const;
00278 QString getPrettyThemeName(const Karamba *k) const;
00279 QVariantList getServiceGroups(const QString &path) const;
00280 QString getThemePath(const Karamba *k = 0) const;
00281 double getUpdateTime(const Karamba *k) const;
00282 bool setUpdateTime(Karamba *k, double updateTime) const;
00283 bool hide(Karamba *k) const;
00284 bool show(Karamba *k) const;
00285 QString language(const Karamba *k) const;
00286 bool managementPopup(const Karamba *k) const;
00287 Karamba* openNamedTheme(const QString &themePath, const QString &themeName,
00288 bool startAsSubTheme) const;
00289 Karamba* openTheme(const QString &themePath) const;
00290 QString readThemeFile(const Karamba *k, const QString &file) const;
00291 bool reloadTheme(Karamba *k) const;
00292 bool removeClickArea(Karamba *k, ClickArea *area) const;
00293 bool run(const QString &appName, const QString &command, const QString &icon, const QStringList
00294 &arguments);
00295 QString getIncomingData(const Karamba *k) const;
00296 bool setIncomingData(Karamba *k, const QString &prettyThemeName, const QString &data) const;
00297 bool toggleShowDesktop(const Karamba *k) const;
00298 bool translateAll(const Karamba *k, int x, int y) const;
00299 QString userLanguage(const Karamba *k) const;
00300 QStringList userLanguages(const Karamba *k) const;
00301 bool setWantRightButton(Karamba *k, bool enable) const;
00302 QStringList version() const;
00303 QVariantList desktopSize() const;
00304 QString getIconByName(const QString &icon, int size) const;
00305 QString getExecutingApplication() const;
00306
00307
00308 QObject* createRichText(Karamba* k, const QString &text, bool underline = false) const;
00309 bool deleteRichText(Karamba *k, RichTextLabel *label) const;
00310 bool moveRichText(Karamba *k, RichTextLabel *label, int x, int y) const;
00311 QVariantList getRichTextPos(const Karamba *k, const RichTextLabel *label) const;
00312 bool resizeRichText(const Karamba *k, RichTextLabel *label, int width, int height) const;
00313 bool setRichTextWidth(const Karamba *k, RichTextLabel *label, int width) const;
00314 QVariantList getRichTextSize(const Karamba *k, const RichTextLabel *label) const;
00315 QObject* changeRichText(const Karamba *k, RichTextLabel *label, const QString &text) const;
00316 QString getRichTextValue(const Karamba *k, const RichTextLabel *label) const;
00317 QObject* getThemeRichText(const Karamba *k, const QString &meter) const;
00318 bool hideRichText(const Karamba *k, RichTextLabel *label) const;
00319 bool showRichText(const Karamba *k, RichTextLabel *label) const;
00320 bool changeRichTextFont(const Karamba *k, RichTextLabel *label, const QString &font) const;
00321 QString getRichTextFont(const Karamba *k, const RichTextLabel *label) const;
00322 bool changeRichTextSize(const Karamba *k, RichTextLabel *label, int size) const;
00323 int getRichTextFontSize(const Karamba *k, const RichTextLabel *label) const;
00324 bool setRichTextSensor(Karamba *k, RichTextLabel *label, const QString &sensor) const;
00325 QString getRichTextSensor(const Karamba *k, const RichTextLabel *label) const;
00326
00327
00328 QObject* createSystray(const Karamba *k, int x, int y, int w, int h) const;
00329 int getCurrentWindowCount(const Karamba *k) const;
00330 bool hideSystray(const Karamba *k) const;
00331 bool moveSystray(const Karamba *k, int x, int y, int w, int h) const;
00332 bool showSystray(const Karamba *k) const;
00333 bool updateSystrayLayout(const Karamba *k) const;
00334 bool getSystraySize(const Karamba *k) const;
00335
00336
00337 QVariantList getStartupInfo(const Karamba *k, const Startup* startup)
00338 const;
00339 QVariantList getStartupList(const Karamba *k) const;
00340 QVariantList getTaskInfo(const Karamba *k, Task* task) const;
00341 QVariantList getTaskList(const Karamba *k) const;
00342 QStringList getTaskNames(const Karamba *k) const;
00343 bool performTaskAction(const Karamba *k, Task* task, int action) const;
00344
00345
00346 QObject* createText(Karamba* k, int x, int y, int width, int height, const QString &text = "") const;
00347 bool deleteText(Karamba *k, TextLabel *text) const;
00348 bool moveText(Karamba *k, TextLabel *text, int x, int y) const;
00349 QVariantList getTextPos(const Karamba *k, const TextLabel *text) const;
00350 bool setTextSensor(Karamba *k, TextLabel *text, const QString &sensor) const;
00351 QString getTextSensor(const Karamba *k, const TextLabel *text) const;
00352 bool resizeText(const Karamba *k, TextLabel *text, int width, int height) const;
00353 QVariantList getTextSize(const Karamba *k, const TextLabel *text) const;
00354 QObject* getThemeText(const Karamba *k, const QString &meter) const;
00355 bool hideText(const Karamba *k, TextLabel *text) const;
00356 bool showText(const Karamba *k, TextLabel *text) const;
00357 QObject* changeText(const Karamba *k, TextLabel *label, const QString &text) const;
00358 QString getTextValue(const Karamba *k, const TextLabel *label) const;
00359 bool changeTextShadow(const Karamba *k, TextLabel *label, int shadow) const;
00360 int getTextShadow(const Karamba *k, const TextLabel *text) const;
00361 bool changeTextFont(const Karamba *k, TextLabel *text, const QString &font) const;
00362 QString getTextFont(const Karamba *k, const TextLabel *text) const;
00363 bool changeTextColor(const Karamba *k, TextLabel *text, int red, int green, int blue, int alpha = 255) const;
00364 QVariantList getTextColor(const Karamba *k, const TextLabel *text) const;
00365 bool changeTextSize(const Karamba *k, TextLabel *text, int size) const;
00366 int getTextFontSize(const Karamba *k, const TextLabel *text) const;
00367 QString getTextAlign(const Karamba *k, const TextLabel *text) const;
00368 bool setTextAlign(const Karamba *k, TextLabel *text, const QString &alignment) const;
00369 bool setTextScroll(const Karamba *k, TextLabel *text, const QString &type, int x = 0, int y = 0,
00370 int gap = 0, int pause = 0) const;
00371 int getTextTextWidth(const Karamba *k, const TextLabel *text) const;
00372
00373
00374 bool createWidgetMask(const Karamba *k, const QString &mask) const;
00375 QVariantList getWidgetPosition(const Karamba *k) const;
00376 bool moveWidget(Karamba *k, int x, int y) const;
00377 bool redrawWidget(Karamba *k) const;
00378 bool redrawWidgetBackground(const Karamba *k) const;
00379 bool resizeWidget(Karamba *k, int width, int height) const;
00380 bool toggleWidgetRedraw(const Karamba *k, bool enable) const;
00381
00382
00383 QObject* getPlasmaSensor(Karamba *k, const QString& engine, const QString& source = QString());
00384 };
00385
00386 #endif