Some comments in the examples
This commit is contained in:
@@ -1,18 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* This programs handle events and dump them to console
|
||||||
|
*/
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <i3ipc++/ipc.hpp>
|
#include <i3ipc++/ipc.hpp>
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
// First of all we need to connect to an i3 process
|
||||||
i3ipc::connection conn;
|
i3ipc::connection conn;
|
||||||
|
|
||||||
|
// Then we subscribing on events (see i3ipc::EVENT_TYPE)
|
||||||
conn.subscribe(i3ipc::ET_WORKSPACE | i3ipc::ET_WINDOW | i3ipc::ET_BINDING);
|
conn.subscribe(i3ipc::ET_WORKSPACE | i3ipc::ET_WINDOW | i3ipc::ET_BINDING);
|
||||||
|
|
||||||
|
// Handler of workspace_event
|
||||||
conn.signal_workspace_event.connect([](const i3ipc::workspace_event_t& ev) {
|
conn.signal_workspace_event.connect([](const i3ipc::workspace_event_t& ev) {
|
||||||
std::cout << "workspace_event: " << (char)ev.type << std::endl;
|
std::cout << "workspace_event: " << (char)ev.type << std::endl;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Handler of window_event
|
||||||
conn.signal_window_event.connect([](const i3ipc::window_event_t& ev) {
|
conn.signal_window_event.connect([](const i3ipc::window_event_t& ev) {
|
||||||
std::cout << "window_event: " << (char)ev.type << std::endl;
|
std::cout << "window_event: " << (char)ev.type << std::endl;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Handler of binding event
|
||||||
conn.signal_binding_event.connect([](const i3ipc::binding_t& b) {
|
conn.signal_binding_event.connect([](const i3ipc::binding_t& b) {
|
||||||
std::cout << "binding_event:" << std::endl
|
std::cout << "binding_event:" << std::endl
|
||||||
<< "\tcommand = \"" << b.command << '"' << std::endl
|
<< "\tcommand = \"" << b.command << '"' << std::endl
|
||||||
@@ -25,6 +37,7 @@ int main() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// And starting an event-handling loop
|
||||||
while (true) {
|
while (true) {
|
||||||
conn.handle_event();
|
conn.handle_event();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* This program dumps a tree of windows and workspaces to console
|
||||||
|
*/
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <i3ipc++/ipc.hpp>
|
#include <i3ipc++/ipc.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reqursively dump containers of a tree
|
||||||
|
* @param c a root container
|
||||||
|
* @param prefix an alignment
|
||||||
|
*/
|
||||||
void dump_tree_container(const i3ipc::container_t& c, std::string& prefix) {
|
void dump_tree_container(const i3ipc::container_t& c, std::string& prefix) {
|
||||||
std::cout << prefix << "ID: " << c.id << " (i3's; X11's - " << c.xwindow_id << ")" << std::endl;
|
std::cout << prefix << "ID: " << c.id << " (i3's; X11's - " << c.xwindow_id << ")" << std::endl;
|
||||||
prefix.push_back('\t');
|
prefix.push_back('\t');
|
||||||
@@ -28,7 +37,10 @@ void dump_tree_container(const i3ipc::container_t& c, std::string& prefix) {
|
|||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
// First of all needs to create a connection
|
||||||
i3ipc::connection conn;
|
i3ipc::connection conn;
|
||||||
|
|
||||||
|
// Then we dump workspaces
|
||||||
for (auto& w : conn.get_workspaces()) {
|
for (auto& w : conn.get_workspaces()) {
|
||||||
std::cout << '#' << std::hex << w->num << std::dec
|
std::cout << '#' << std::hex << w->num << std::dec
|
||||||
<< "\n\tName: " << w->name
|
<< "\n\tName: " << w->name
|
||||||
@@ -43,6 +55,8 @@ int main() {
|
|||||||
<< "\n\tOutput: " << w->output
|
<< "\n\tOutput: " << w->output
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Then we dump the tree
|
||||||
std::string prefix_buf;
|
std::string prefix_buf;
|
||||||
dump_tree_container(*conn.get_tree(), prefix_buf);
|
dump_tree_container(*conn.get_tree(), prefix_buf);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user