polybar-dwm/include/modules/unsupported.hpp

74 lines
3.4 KiB
C++
Raw Normal View History

2016-10-11 08:05:03 +00:00
#pragma once
#if ENABLE_I3 && ENABLE_MPD && ENABLE_NETWORK && ENABLE_ALSA && ENABLE_CURL && WITH_XKB
#error "Support has been enabled for all optional modules"
#endif
#include "modules/meta/base.hpp"
2016-11-25 12:55:15 +00:00
#include "modules/meta/base.inl"
#if not(ENABLE_ALSA && ENABLE_I3 && ENABLE_MPD)
#include "modules/meta/event_module.inl"
#endif
#if not(ENABLE_NETWORK && ENABLE_CURL)
2016-11-25 12:55:15 +00:00
#include "modules/meta/timer_module.inl"
#endif
2016-11-30 13:26:11 +00:00
#if not WITH_XKB
#include "modules/meta/static_module.inl"
#endif
POLYBAR_NS
2016-10-11 08:05:03 +00:00
namespace modules {
struct module_interface;
2016-10-11 08:05:03 +00:00
#define DEFINE_UNSUPPORTED_MODULE(MODULE_NAME, MODULE_TYPE) \
class MODULE_NAME : public module_interface { \
2016-10-11 08:05:03 +00:00
public: \
MODULE_NAME(const bar_settings, string) { \
2016-10-11 08:05:03 +00:00
throw application_error("No built-in support for '" + string{MODULE_TYPE} + "'"); \
} \
string name() const { \
return ""; \
} \
bool running() const { \
return false; \
} \
void setup() {} \
2016-10-11 08:05:03 +00:00
void start() {} \
void stop() {} \
void halt(string) {} \
string contents() { \
return ""; \
} \
bool handle_event(string) { \
return false; \
} \
bool receive_events() const { \
return false; \
2016-10-11 08:05:03 +00:00
} \
void set_update_cb(callback<>&&) {} \
void set_stop_cb(callback<>&&) {} \
2016-10-11 08:05:03 +00:00
}
#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(volume_module, "internal/volume");
#endif
#if not ENABLE_CURL
DEFINE_UNSUPPORTED_MODULE(github_module, "internal/github");
#endif
2016-11-30 13:26:11 +00:00
#if not WITH_XKB
DEFINE_UNSUPPORTED_MODULE(xkeyboard_module, "internal/xkeyboard");
#endif
2016-10-11 08:05:03 +00:00
}
2016-11-19 05:22:44 +00:00
POLYBAR_NS_END