191fb2972c
Only modules can now be action handlers. This also slightly simplifies the controller because we don't need to keep track of input handlers, we can just use the module list.
65 lines
3.3 KiB
C++
65 lines
3.3 KiB
C++
#pragma once
|
|
|
|
#include "modules/meta/base.hpp"
|
|
#include "modules/meta/base.inl"
|
|
|
|
POLYBAR_NS
|
|
|
|
namespace modules {
|
|
struct module_interface;
|
|
|
|
#define DEFINE_UNSUPPORTED_MODULE(MODULE_NAME, MODULE_TYPE) \
|
|
class MODULE_NAME : public module_interface { \
|
|
public: \
|
|
MODULE_NAME(const bar_settings, string) { \
|
|
throw application_error("No built-in support for '" + string{MODULE_TYPE} + "'"); \
|
|
} \
|
|
static constexpr auto TYPE = MODULE_TYPE; \
|
|
string type() const { \
|
|
return ""; \
|
|
} \
|
|
string name_raw() const { \
|
|
return ""; \
|
|
} \
|
|
string name() const { \
|
|
return ""; \
|
|
} \
|
|
bool running() const { \
|
|
return false; \
|
|
} \
|
|
void start() {} \
|
|
void stop() {} \
|
|
void halt(string) {} \
|
|
string contents() { \
|
|
return ""; \
|
|
} \
|
|
bool input(const string&, const string&) { \
|
|
return false; \
|
|
} \
|
|
}
|
|
|
|
#if not ENABLE_I3
|
|
DEFINE_UNSUPPORTED_MODULE(i3_module, "internal/i3");
|
|
#endif
|
|
#if not ENABLE_MPD
|
|
DEFINE_UNSUPPORTED_MODULE(mpd_module, "internal/mpd");
|
|
#endif
|
|
#if not ENABLE_NETWORK
|
|
DEFINE_UNSUPPORTED_MODULE(network_module, "internal/network");
|
|
#endif
|
|
#if not ENABLE_ALSA
|
|
DEFINE_UNSUPPORTED_MODULE(alsa_module, "internal/alsa");
|
|
#endif
|
|
#if not ENABLE_PULSEAUDIO
|
|
DEFINE_UNSUPPORTED_MODULE(pulseaudio_module, "internal/pulseaudio");
|
|
#endif
|
|
#if not ENABLE_CURL
|
|
DEFINE_UNSUPPORTED_MODULE(github_module, "internal/github");
|
|
#endif
|
|
#if not ENABLE_XKEYBOARD
|
|
DEFINE_UNSUPPORTED_MODULE(xkeyboard_module, "internal/xkeyboard");
|
|
#endif
|
|
} // namespace modules
|
|
|
|
POLYBAR_NS_END
|