aboutsummaryrefslogtreecommitdiff
path: root/libLumina/LuminaX11.h
diff options
context:
space:
mode:
authorKen Moore <ken@pcbsd.org>2014-12-18 07:47:48 -0500
committerKen Moore <ken@pcbsd.org>2014-12-18 07:47:48 -0500
commit71c2fda95224f0a04316c5f1059628d33564ca43 (patch)
treeca74dbe49dd2f555e73893e7f5f06154d6dab763 /libLumina/LuminaX11.h
parentOops, forgot to add knowledge of the new "Wine" app category to the userbutton. (diff)
downloadlumina-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.h35
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
bgstack15