refactor(modules): Make all modules input handlers
By default they will return false for calls to `input`
This commit is contained in:
parent
457e37faaf
commit
4b5007294b
@ -2,7 +2,6 @@
|
||||
|
||||
#include "settings.hpp"
|
||||
#include "modules/meta/event_module.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
@ -19,7 +18,7 @@ namespace modules {
|
||||
using mixer_t = shared_ptr<alsa::mixer>;
|
||||
using control_t = shared_ptr<alsa::control>;
|
||||
|
||||
class alsa_module : public event_module<alsa_module>, public input_handler {
|
||||
class alsa_module : public event_module<alsa_module> {
|
||||
public:
|
||||
explicit alsa_module(const bar_settings&, string);
|
||||
|
||||
|
@ -1,13 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "modules/meta/event_module.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "utils/bspwm.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
namespace modules {
|
||||
class bspwm_module : public event_module<bspwm_module>, public input_handler {
|
||||
class bspwm_module : public event_module<bspwm_module> {
|
||||
public:
|
||||
enum class state {
|
||||
NONE = 0U,
|
||||
|
@ -1,6 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "modules/meta/timer_module.hpp"
|
||||
|
||||
#include <iostream>
|
||||
@ -10,7 +9,7 @@
|
||||
POLYBAR_NS
|
||||
|
||||
namespace modules {
|
||||
class date_module : public timer_module<date_module>, public input_handler {
|
||||
class date_module : public timer_module<date_module> {
|
||||
public:
|
||||
explicit date_module(const bar_settings&, string);
|
||||
|
||||
|
@ -4,14 +4,13 @@
|
||||
|
||||
#include "components/config.hpp"
|
||||
#include "modules/meta/event_module.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "utils/i3.hpp"
|
||||
#include "utils/io.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
namespace modules {
|
||||
class i3_module : public event_module<i3_module>, public input_handler {
|
||||
class i3_module : public event_module<i3_module> {
|
||||
public:
|
||||
enum class state {
|
||||
NONE,
|
||||
|
@ -1,12 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "modules/meta/static_module.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
namespace modules {
|
||||
class menu_module : public static_module<menu_module>, public input_handler {
|
||||
class menu_module : public static_module<menu_module> {
|
||||
public:
|
||||
struct menu_tree_item {
|
||||
string exec;
|
||||
|
@ -9,11 +9,11 @@
|
||||
#include "common.hpp"
|
||||
#include "components/types.hpp"
|
||||
#include "errors.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "utils/concurrency.hpp"
|
||||
#include "utils/functional.hpp"
|
||||
#include "utils/inotify.hpp"
|
||||
#include "utils/string.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
namespace chrono = std::chrono;
|
||||
@ -118,7 +118,7 @@ namespace modules {
|
||||
// class definition : module {{{
|
||||
|
||||
template <class Impl>
|
||||
class module : public module_interface {
|
||||
class module : public module_interface, public input_handler {
|
||||
public:
|
||||
module(const bar_settings bar, string name);
|
||||
~module() noexcept;
|
||||
@ -131,6 +131,9 @@ namespace modules {
|
||||
void teardown();
|
||||
string contents();
|
||||
|
||||
bool input(string&& cmd);
|
||||
string input_handler_name() const;
|
||||
|
||||
protected:
|
||||
void broadcast();
|
||||
void idle();
|
||||
|
@ -98,6 +98,17 @@ namespace modules {
|
||||
return m_cache;
|
||||
}
|
||||
|
||||
template <typename Impl>
|
||||
bool module<Impl>::input(string&&) {
|
||||
// By default a module doesn't support inputs
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename Impl>
|
||||
string module<Impl>::input_handler_name() const {
|
||||
return m_name_raw;
|
||||
}
|
||||
|
||||
// }}}
|
||||
// module<Impl> protected {{{
|
||||
|
||||
|
@ -14,6 +14,13 @@ namespace modules {
|
||||
* \returns true if the command is supported and false otherwise
|
||||
*/
|
||||
virtual bool input(string&& cmd) = 0;
|
||||
|
||||
/**
|
||||
* The name of this input handler
|
||||
*
|
||||
* Actions of the form '#NAME#ACTION' can be sent to this handler if NAME is the name of this input handler.
|
||||
*/
|
||||
virtual string input_handler_name() const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -5,14 +5,13 @@
|
||||
#include "utils/env.hpp"
|
||||
#include "adapters/mpd.hpp"
|
||||
#include "modules/meta/event_module.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
using namespace mpd;
|
||||
|
||||
namespace modules {
|
||||
class mpd_module : public event_module<mpd_module>, public input_handler {
|
||||
class mpd_module : public event_module<mpd_module> {
|
||||
public:
|
||||
explicit mpd_module(const bar_settings&, string);
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
#include "settings.hpp"
|
||||
#include "modules/meta/event_module.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
@ -12,7 +11,7 @@ class pulseaudio;
|
||||
namespace modules {
|
||||
using pulseaudio_t = shared_ptr<pulseaudio>;
|
||||
|
||||
class pulseaudio_module : public event_module<pulseaudio_module>, public input_handler {
|
||||
class pulseaudio_module : public event_module<pulseaudio_module> {
|
||||
public:
|
||||
explicit pulseaudio_module(const bar_settings&, string);
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "modules/meta/static_module.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
|
||||
POLYBAR_NS
|
||||
|
||||
@ -13,7 +12,7 @@ namespace modules {
|
||||
* Module used to display information about the
|
||||
* currently active X window.
|
||||
*/
|
||||
class systray_module : public static_module<systray_module>, public input_handler {
|
||||
class systray_module : public static_module<systray_module> {
|
||||
public:
|
||||
explicit systray_module(const bar_settings&, string);
|
||||
|
||||
|
@ -12,7 +12,7 @@ namespace modules {
|
||||
struct module_interface;
|
||||
|
||||
#define DEFINE_UNSUPPORTED_MODULE(MODULE_NAME, MODULE_TYPE) \
|
||||
class MODULE_NAME : public module_interface { \
|
||||
class MODULE_NAME : public module_interface, public input_handler { \
|
||||
public: \
|
||||
MODULE_NAME(const bar_settings, string) { \
|
||||
throw application_error("No built-in support for '" + string{MODULE_TYPE} + "'"); \
|
||||
@ -32,6 +32,12 @@ namespace modules {
|
||||
string contents() { \
|
||||
return ""; \
|
||||
} \
|
||||
string input_handler_name() const { \
|
||||
return ""; \
|
||||
} \
|
||||
bool input(string&&) { \
|
||||
return false; \
|
||||
} \
|
||||
}
|
||||
|
||||
#if not ENABLE_I3
|
||||
|
@ -3,7 +3,6 @@
|
||||
#include "components/config.hpp"
|
||||
#include "settings.hpp"
|
||||
#include "modules/meta/event_handler.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "modules/meta/static_module.hpp"
|
||||
#include "x11/extensions/randr.hpp"
|
||||
|
||||
@ -26,8 +25,7 @@ namespace modules {
|
||||
* TODO: Implement backlight configuring using scroll events
|
||||
*/
|
||||
class xbacklight_module : public static_module<xbacklight_module>,
|
||||
public event_handler<evt::randr_notify>,
|
||||
public input_handler {
|
||||
public event_handler<evt::randr_notify> {
|
||||
public:
|
||||
explicit xbacklight_module(const bar_settings& bar, string name_);
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
#include "components/config.hpp"
|
||||
#include "components/types.hpp"
|
||||
#include "modules/meta/event_handler.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "modules/meta/static_module.hpp"
|
||||
#include "x11/extensions/xkb.hpp"
|
||||
#include "x11/window.hpp"
|
||||
@ -19,8 +18,7 @@ namespace modules {
|
||||
*/
|
||||
class xkeyboard_module
|
||||
: public static_module<xkeyboard_module>,
|
||||
public event_handler<evt::xkb_new_keyboard_notify, evt::xkb_state_notify, evt::xkb_indicator_state_notify>,
|
||||
public input_handler {
|
||||
public event_handler<evt::xkb_new_keyboard_notify, evt::xkb_state_notify, evt::xkb_indicator_state_notify> {
|
||||
public:
|
||||
explicit xkeyboard_module(const bar_settings& bar, string name_);
|
||||
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include "components/config.hpp"
|
||||
#include "components/types.hpp"
|
||||
#include "modules/meta/event_handler.hpp"
|
||||
#include "modules/meta/input_handler.hpp"
|
||||
#include "modules/meta/static_module.hpp"
|
||||
#include "x11/ewmh.hpp"
|
||||
#include "x11/icccm.hpp"
|
||||
@ -52,8 +51,7 @@ namespace modules {
|
||||
* Module used to display EWMH desktops
|
||||
*/
|
||||
class xworkspaces_module : public static_module<xworkspaces_module>,
|
||||
public event_handler<evt::property_notify>,
|
||||
public input_handler {
|
||||
public event_handler<evt::property_notify> {
|
||||
public:
|
||||
explicit xworkspaces_module(const bar_settings& bar, string name_);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user