superkaramba
karambaapp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef KARAMBAAPP_H
00014 #define KARAMBAAPP_H
00015
00016 #include <QSystemTrayIcon>
00017 #include <QGraphicsItemGroup>
00018
00019 #include <KUrl>
00020 #include <KUniqueApplication>
00021
00022 #define karambaApp ((KarambaApplication*)qApp)
00023
00024 class KCmdLineArgs;
00025 class KSystemTrayIcon;
00026 class KHelpMenu;
00027 class ThemesDlg;
00028 class Karamba;
00029
00030 class KarambaApplication : public KUniqueApplication
00031 {
00032 Q_OBJECT
00033 Q_CLASSINFO("D-Bus Interface", "org.kde.SuperKaramba")
00034 public:
00035 KarambaApplication(Display *display, Qt::HANDLE visual, Qt::HANDLE colormap);
00036 ~KarambaApplication();
00037
00038 int newInstance();
00039
00040 void setupSysTray(KAboutData* about);
00041
00042 public Q_SLOTS:
00043 void showThemesDialog(QSystemTrayIcon::ActivationReason reason = QSystemTrayIcon::Unknown);
00044
00045 void karambaStarted(QGraphicsItemGroup*);
00046 void karambaClosed(QGraphicsItemGroup*);
00047
00048 Q_SCRIPTABLE bool closeTheme(const QString &prettyThemeName);
00049 Q_SCRIPTABLE void hideSystemTray(bool hide);
00050 Q_SCRIPTABLE void openNamedTheme(const QString &file, const QString &themeName, bool subTheme);
00051 Q_SCRIPTABLE void openTheme(const QString &file);
00052 Q_SCRIPTABLE void quitSuperKaramba();
00053 Q_SCRIPTABLE bool setIncomingData(const QString &prettyThemeName, const QString &data);
00054 Q_SCRIPTABLE void showThemeDialog();
00055 Q_SCRIPTABLE bool themeNotify(const QString &prettyThemeName, const QString &data);
00056
00057 private:
00058 void checkCommandLine(KCmdLineArgs *args, QList<KUrl> &lst);
00059 void startThemes(const QList<KUrl> &lst);
00060 void checkPreviousSession(QList<KUrl> &lst);
00061 void setToolTip(const QString &tip = QString());
00062 void showKarambaMenuExtension(bool show = true);
00063 void buildToolTip();
00064
00065 private Q_SLOTS:
00066 void toggleSystemTray();
00067 void sendDataToTheme(const QString &themeName, const QString &data, bool notify);
00068
00069 private:
00070 KSystemTrayIcon *m_sysTrayIcon;
00071 KHelpMenu *m_helpMenu;
00072
00073 ThemesDlg *m_themesDialog;
00074 };
00075
00076 #endif