diff options
author | Ken Moore <ken@pcbsd.org> | 2014-12-18 07:47:48 -0500 |
---|---|---|
committer | Ken Moore <ken@pcbsd.org> | 2014-12-18 07:47:48 -0500 |
commit | 71c2fda95224f0a04316c5f1059628d33564ca43 (patch) | |
tree | ca74dbe49dd2f555e73893e7f5f06154d6dab763 /libLumina/LuminaX11.h | |
parent | Oops, forgot to add knowledge of the new "Wine" app category to the userbutton. (diff) | |
download | lumina-71c2fda95224f0a04316c5f1059628d33564ca43.tar.gz lumina-71c2fda95224f0a04316c5f1059628d33564ca43.tar.bz2 lumina-71c2fda95224f0a04316c5f1059628d33564ca43.zip |
Commit a checkpoint on the conversion of Lumina to Qt5.
It is functional at the moment, but still has a few rough edges with regards to the X11 background interface (due to the move from XLib to XCB in Qt5). This reulst in some of the window manager interactions not behaving properly (such as sticky status on panels).
Diffstat (limited to 'libLumina/LuminaX11.h')
-rw-r--r-- | libLumina/LuminaX11.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libLumina/LuminaX11.h b/libLumina/LuminaX11.h index e7cded49..ac232de1 100644 --- a/libLumina/LuminaX11.h +++ b/libLumina/LuminaX11.h @@ -20,6 +20,7 @@ #include <QX11Info> #include <QDebug> #include <QPainter> +#include <QObject> // Addition includes for compilations (cause issues with X11 libs later) #include <QDir> #include <QEvent> @@ -33,6 +34,8 @@ //#include <X11/Xatom.h> //#include <X11/extensions/Xrender.h> +#include <xcb/xcb_ewmh.h> + //SYSTEM TRAY STANDARD DEFINITIONS #define _NET_SYSTEM_TRAY_ORIENTATION_HORZ 0 #define _NET_SYSTEM_TRAY_ORIENTATION_VERT 1 @@ -46,6 +49,9 @@ class LX11{ public: enum WINDOWSTATE {VISIBLE, INVISIBLE, ACTIVE, ATTENTION, IGNORE}; + //Internal Use Functions + //static xcb_ewmh_connection_t* EWMH_C(); //Get the XCB_ewmh handle; + //General Info Functions static QList<WId> WindowList(); //List all current windows static QList<WId> GetClientList(); // _NET_WM_CLIENT list @@ -102,4 +108,33 @@ public: static QString getNetWMProp(WId win, QString prop); //Returns a _NET_WM_* string value }; +//XCB Library replacement for LX11 (Qt5 uses XCB instead of XLib) +class LXCB{ + +private: + xcb_ewmh_connection_t EWMH; + +public: + enum WINDOWSTATE {VISIBLE, INVISIBLE, ACTIVE, ATTENTION, IGNORE}; + + LXCB(); + ~LXCB(); + + //== Main Interface functions == + // General Information + QList<WId> WindowList(bool rawlist = false); //list all non-Lumina windows (rawlist -> all workspaces) + unsigned int CurrentWorkspace(); + + //Session Modification + + + //Window Information + QString WindowClass(WId); + unsigned int WindowWorkspace(WId); + WINDOWSTATE WindowState(WId win); //Visible state of window + + //Window Modification + void SetAsSticky(WId); +}; + #endif
\ No newline at end of file |