mirror of
https://github.com/rad4day/Waybar.git
synced 2023-12-21 10:22:59 +01:00
refactor: prefer static methods
This commit is contained in:
@ -1,37 +1,5 @@
|
||||
#include "client.hpp"
|
||||
|
||||
static void handle_global(void *data, struct wl_registry *registry,
|
||||
uint32_t name, const char *interface, uint32_t version)
|
||||
{
|
||||
auto o = reinterpret_cast<waybar::Client *>(data);
|
||||
if (!strcmp(interface, zwlr_layer_shell_v1_interface.name)) {
|
||||
o->layer_shell = (zwlr_layer_shell_v1 *)wl_registry_bind(registry, name,
|
||||
&zwlr_layer_shell_v1_interface, version);
|
||||
} else if (!strcmp(interface, wl_output_interface.name)) {
|
||||
auto output = std::make_unique<struct wl_output *>();
|
||||
*output = (struct wl_output *)wl_registry_bind(registry, name,
|
||||
&wl_output_interface, version);
|
||||
o->bars.emplace_back(*o, std::move(output));
|
||||
} else if (!strcmp(interface, org_kde_kwin_idle_interface.name)) {
|
||||
o->idle_manager = (org_kde_kwin_idle *)wl_registry_bind(registry, name,
|
||||
&org_kde_kwin_idle_interface, version);
|
||||
} else if (!strcmp(interface, wl_seat_interface.name)) {
|
||||
o->seat = (struct wl_seat *)wl_registry_bind(registry, name,
|
||||
&wl_seat_interface, version);
|
||||
}
|
||||
}
|
||||
|
||||
static void handle_global_remove(void *data,
|
||||
struct wl_registry *registry, uint32_t name)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
static const struct wl_registry_listener registry_listener = {
|
||||
.global = handle_global,
|
||||
.global_remove = handle_global_remove,
|
||||
};
|
||||
|
||||
waybar::Client::Client(int argc, char* argv[])
|
||||
: gtk_main(argc, argv),
|
||||
gdk_display(Gdk::Display::get_default()),
|
||||
@ -70,9 +38,40 @@ waybar::Client::Client(int argc, char* argv[])
|
||||
|
||||
}
|
||||
|
||||
void waybar::Client::_handle_global(void *data, struct wl_registry *registry,
|
||||
uint32_t name, const char *interface, uint32_t version)
|
||||
{
|
||||
auto o = reinterpret_cast<waybar::Client *>(data);
|
||||
if (!strcmp(interface, zwlr_layer_shell_v1_interface.name)) {
|
||||
o->layer_shell = (zwlr_layer_shell_v1 *)wl_registry_bind(registry, name,
|
||||
&zwlr_layer_shell_v1_interface, version);
|
||||
} else if (!strcmp(interface, wl_output_interface.name)) {
|
||||
auto output = std::make_unique<struct wl_output *>();
|
||||
*output = (struct wl_output *)wl_registry_bind(registry, name,
|
||||
&wl_output_interface, version);
|
||||
o->bars.emplace_back(*o, std::move(output));
|
||||
} else if (!strcmp(interface, org_kde_kwin_idle_interface.name)) {
|
||||
o->idle_manager = (org_kde_kwin_idle *)wl_registry_bind(registry, name,
|
||||
&org_kde_kwin_idle_interface, version);
|
||||
} else if (!strcmp(interface, wl_seat_interface.name)) {
|
||||
o->seat = (struct wl_seat *)wl_registry_bind(registry, name,
|
||||
&wl_seat_interface, version);
|
||||
}
|
||||
}
|
||||
|
||||
void waybar::Client::_handle_global_remove(void *data,
|
||||
struct wl_registry *registry, uint32_t name)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
void waybar::Client::bind_interfaces()
|
||||
{
|
||||
registry = wl_display_get_registry(wlDisplay);
|
||||
static const struct wl_registry_listener registry_listener = {
|
||||
.global = _handle_global,
|
||||
.global_remove = _handle_global_remove,
|
||||
};
|
||||
wl_registry_add_listener(registry, ®istry_listener, this);
|
||||
wl_display_roundtrip(wlDisplay);
|
||||
}
|
||||
|
Reference in New Issue
Block a user