diff options
author | Kris Moore <kris@pcbsd.org> | 2014-09-04 11:42:13 -0400 |
---|---|---|
committer | Kris Moore <kris@pcbsd.org> | 2014-09-04 11:42:13 -0400 |
commit | 71737f70949bd25f9aa8bc4e7d03039ba83c6cb1 (patch) | |
tree | ab29e864d1ae59d10cc6875af9541e3ad306b2fb /lumina-desktop/LSession.h | |
parent | Initial commit (diff) | |
download | lumina-71737f70949bd25f9aa8bc4e7d03039ba83c6cb1.tar.gz lumina-71737f70949bd25f9aa8bc4e7d03039ba83c6cb1.tar.bz2 lumina-71737f70949bd25f9aa8bc4e7d03039ba83c6cb1.zip |
Initial import of the lumina code from pcbsd git repo
Diffstat (limited to 'lumina-desktop/LSession.h')
-rw-r--r-- | lumina-desktop/LSession.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/lumina-desktop/LSession.h b/lumina-desktop/LSession.h new file mode 100644 index 00000000..3f3d31f9 --- /dev/null +++ b/lumina-desktop/LSession.h @@ -0,0 +1,98 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2012, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#ifndef _LUMINA_DESKTOP_SESSION_H +#define _LUMINA_DESKTOP_SESSION_H + +#include <QApplication> +#include <QDebug> +#include <QString> +#include <QX11Info> +#include <QEvent> +#include <QTranslator> +#include <QSettings> +#include <QProxyStyle> +#include <QDesktopWidget> +#include <QList> +#include <QThread> + +#include "Globals.h" +#include "AppMenu.h" +#include "SettingsMenu.h" +#include "SystemWindow.h" +#include "LDesktop.h" +#include "WMProcess.h" + +//LibLumina X11 class +#include <LuminaX11.h> + +//SYSTEM TRAY STANDARD DEFINITIONS +//#define SYSTEM_TRAY_REQUEST_DOCK 0 +//#define SYSTEM_TRAY_BEGIN_MESSAGE 1 +//#define SYSTEM_TRAY_CANCEL_MESSAGE 2 + +class MenuProxyStyle : public QProxyStyle{ +public: + int pixelMetric(PixelMetric metric, const QStyleOption *option=0, const QWidget *widget=0) const{ + if(metric==PM_SmallIconSize){ return 22; } //override QMenu icon size (make it larger) + else{ return QProxyStyle::pixelMetric(metric, option, widget); } //use the current style for everything else + } +}; + +class LSession : public QApplication{ + Q_OBJECT +public: + LSession(int &argc, char **argv); + ~LSession(); + //Functions to be called during startup + void setupSession(); + + virtual bool x11EventFilter(XEvent *event); + + bool LoadLocale(QString); + + //System Access + static void LaunchApplication(QString cmd); + static AppMenu* applicationMenu(); + static void systemWindow(); + static SettingsMenu* settingsMenu(); + + static QSettings* sessionSettings(); + + //Play System Audio + static void playAudioFile(QString filepath); + +private: + WMProcess *WM; + QList<LDesktop*> DESKTOPS; + QFileSystemWatcher *watcher; + +public slots: + void launchStartupApps(); + + +private slots: + void watcherChange(QString); + + //Internal simplification functions + void checkUserFiles(); + void loadStyleSheet(); + void refreshWindowManager(); + void updateDesktops(); + + void SessionEnding(); + +signals: + void NewSystemTrayApp(WId); //WinID + void TrayEvent(XEvent*); + void WindowListEvent(WId); + void WindowListEvent(); + void LocaleChanged(); + void DesktopConfigChanged(); + +}; + +#endif |