* ipc.c: UNIX domain socket IPC (initialization, client handling, protocol).
*
*/
-#ifndef I3_IPC_H
-#define I3_IPC_H
+#pragma once
#include <ev.h>
#include <stdbool.h>
#include "data.h"
#include "tree.h"
+#include "config.h"
#include "i3/ipc.h"
int size, uint32_t message_size, \
uint32_t message_type)
+/**
+ * Emulates mkdir -p (creates any missing folders)
+ *
+ */
+bool mkdirp(const char *path);
+
/**
* Handler for activity on the listening socket, meaning that a new client
* has just connected and we should accept() him. Sets up the event handler
void dump_node(yajl_gen gen, Con *con, bool inplace_restart);
-#endif
+/**
+ * For the workspace "focus" event we send, along the usual "change" field,
+ * also the current and previous workspace, in "current" and "old"
+ * respectively.
+ */
+void ipc_send_workspace_focus_event(Con *current, Con *old);
+
+/**
+ * For the window events we send, along the usual "change" field,
+ * also the window container, in "container".
+ */
+void ipc_send_window_event(const char *property, Con *con);
+
+/**
+ * For the barconfig update events, we send the serialized barconfig.
+ */
+void ipc_send_barconfig_update_event(Barconfig *barconfig);