#pragma once #include "common.hpp" #include "components/eventloop.hpp" #include "utils/functional.hpp" POLYBAR_NS // fwd decl {{{ enum class mousebtn : uint8_t; enum class syntaxtag : uint8_t; enum class alignment : uint8_t; enum class attribute : uint8_t; // }}} /** * @TODO: Allow multiple signal handlers * @TODO: Encapsulate signals */ namespace g_signals { /** * Helper used to create no-op "callbacks" */ template <typename... T> static callback<T...> noop = [](T...) {}; /** * Signals used to communicate with the event loop */ namespace event { extern callback<const eventloop::entry_t&> enqueue; extern callback<const eventloop::entry_t&> enqueue_delayed; } /** * Signals used to communicate with the bar window */ namespace bar { extern callback<string> action_click; extern callback<const bool> visibility_change; } /** * Signals used to communicate with the input parser */ namespace parser { extern callback<const uint32_t> background_change; extern callback<const uint32_t> foreground_change; extern callback<const uint32_t> underline_change; extern callback<const uint32_t> overline_change; extern callback<const alignment> alignment_change; extern callback<const attribute> attribute_set; extern callback<const attribute> attribute_unset; extern callback<const attribute> attribute_toggle; extern callback<const int8_t> font_change; extern callback<const int16_t> pixel_offset; extern callback<const mousebtn, const string> action_block_open; extern callback<const mousebtn> action_block_close; extern callback<const uint16_t> ascii_text_write; extern callback<const uint16_t> unicode_text_write; extern callback<const char*, const size_t> string_write; } } POLYBAR_NS_END