mirror of
https://github.com/polybar/polybar.git
synced 2024-10-27 05:23:39 -04:00
75 lines
1.9 KiB
C++
75 lines
1.9 KiB
C++
#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;
|
|
}
|
|
|
|
/**
|
|
* Signals used to communicate with the tray manager
|
|
*/
|
|
namespace tray {
|
|
extern callback<const uint16_t> report_slotcount;
|
|
}
|
|
}
|
|
|
|
POLYBAR_NS_END
|