summaryrefslogtreecommitdiff
path: root/ewmh.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ewmh.cpp')
-rw-r--r--ewmh.cpp101
1 files changed, 0 insertions, 101 deletions
diff --git a/ewmh.cpp b/ewmh.cpp
deleted file mode 100644
index a3cc505..0000000
--- a/ewmh.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#include "ewmh.h"
-#include <X11/X.h>
-#include <X11/Xatom.h>
-#include <X11/Xlib.h>
-#include <iostream>
-#include <ostream>
-#include <string>
-
-Display** dpy_;
-Window* root_;
-
-void initEWMH(Display** dpy, Window* root, int numWS, std::vector<Workspace> workspaces)
-{
- dpy_ = dpy;
- root_ = root;
-
- Atom supported[] = {XInternAtom(*dpy_, "_NET_NUMBER_OF_DESKTOPS", false), XInternAtom(*dpy_, "_NET_DESKTOP_NAMES", false), XInternAtom(*dpy_, "_NET_CLIENT_LIST", false), XInternAtom(*dpy_, "_NET_CURRENT_DESKTOP", false)};
- int wsNamesLen = numWS; //For null bytes
- for(int i = 0; i < numWS; i++)
- {
- wsNamesLen += workspaces[i].name.length();
- }
- char wsNames[wsNamesLen];
- int pos = 0;
- for(int i = 0; i < numWS; i++)
- {
- for(char toAdd : workspaces[i].name)
- {
- wsNames[pos++] = toAdd;
- }
- wsNames[pos++] = '\0';
- }
- unsigned long numDesktops = numWS;
- Atom netSupportedAtom = XInternAtom(*dpy_, "_NET_SUPPORTED", false);
- Atom netNumDesktopsAtom = XInternAtom(*dpy_, "_NET_NUMBER_OF_DESKTOPS", false);
- Atom netDesktopNamesAtom = XInternAtom(*dpy_, "_NET_DESKTOP_NAMES", false);
- Atom XA_UTF8STRING = XInternAtom(*dpy_, "UTF8_STRING", false);
- XChangeProperty(*dpy_, *root_, netSupportedAtom, XA_ATOM, 32, PropModeReplace, (unsigned char*)supported, 3);
- XChangeProperty(*dpy_, *root_, netDesktopNamesAtom, XA_UTF8STRING, 8, PropModeReplace, (unsigned char*)&wsNames, wsNamesLen);
- XChangeProperty(*dpy_, *root_, netNumDesktopsAtom, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)&numDesktops, 1);
-
-
-}
-
-void updateClientList(std::map<int, Client> clients)
-{
- Atom netClientList = XInternAtom(*dpy_, "_NET_CLIENT_LIST", false);
- XDeleteProperty(*dpy_, *root_, netClientList);
-
- std::map<int, Client>::iterator cItr;
- for(cItr = clients.begin(); cItr != clients.end(); cItr++)
- {
- XChangeProperty(*dpy_, *root_, netClientList, XA_WINDOW, 32, PropModeAppend, (unsigned char*)&cItr->second.w, 1);
- }
-
-}
-
-void setWindowDesktop(Window w, int desktop)
-{
- unsigned long currDesktop = desktop - 1;
- Atom netWMDesktop = XInternAtom(*dpy_, "_NET_WM_DESKTOP", false);
- XChangeProperty(*dpy_, w, netWMDesktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)&currDesktop, 1);
-}
-
-void setCurrentDesktop(int desktop)
-{
- unsigned long currDesktop = desktop - 1;
- Atom netCurrentDesktop = XInternAtom(*dpy_, "_NET_CURRENT_DESKTOP", false);
- XChangeProperty(*dpy_, *root_, netCurrentDesktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char*)&currDesktop, 1);
-}
-
-void setFullscreen(Window w, bool fullscreen)
-{
- Atom netWMState = XInternAtom(*dpy_, "_NET_WM_STATE", false);
- Atom netWMStateVal;
- if(fullscreen)
- netWMStateVal = XInternAtom(*dpy_, "_NET_WM_STATE_FULLSCREEN", false);
- else
- netWMStateVal = XInternAtom(*dpy_, "", false);
- XChangeProperty(*dpy_, w, netWMState, XA_ATOM, 32, PropModeReplace, (unsigned char*)&netWMStateVal, 1);
-
-}
-
-void setIPCPath(unsigned char* path, int len)
-{
- Atom socketPathAtom = XInternAtom(*dpy_, "YATWM_SOCKET_PATH", false);
- XChangeProperty(*dpy_, *root_, socketPathAtom, XA_STRING, 8, PropModeReplace, path, len);
-}
-
-int getProp(Window w, char* propName, Atom* type, unsigned char** data)
-{
- Atom prop_type = XInternAtom(*dpy_, propName, false);
- int format;
- unsigned long length;
- unsigned long after;
- int status = XGetWindowProperty(*dpy_, w, prop_type,
- 0L, 1L, False,
- AnyPropertyType, type, &format,
- &length, &after, data);
- return(status);
-}