ae2350167b
All modules now expose their actions as public static constants Issues: The menu module no longer closes when an item is clicked (before it would intercept any executed command and look if it matches one of its exec commands)
57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "components/config.hpp"
|
|
#include "modules/meta/inotify_module.hpp"
|
|
#include "settings.hpp"
|
|
|
|
POLYBAR_NS
|
|
|
|
namespace modules {
|
|
class backlight_module : public inotify_module<backlight_module> {
|
|
public:
|
|
struct brightness_handle {
|
|
void filepath(const string& path);
|
|
float read() const;
|
|
|
|
private:
|
|
string m_path;
|
|
};
|
|
|
|
string get_output();
|
|
|
|
public:
|
|
explicit backlight_module(const bar_settings&, string);
|
|
|
|
void idle();
|
|
bool on_event(inotify_event* event);
|
|
bool build(builder* builder, const string& tag) const;
|
|
|
|
static constexpr auto TYPE = "internal/backlight";
|
|
|
|
static constexpr const char* EVENT_INC = "inc";
|
|
static constexpr const char* EVENT_DEC = "dec";
|
|
|
|
protected:
|
|
bool input(string&& cmd);
|
|
|
|
private:
|
|
static constexpr auto TAG_LABEL = "<label>";
|
|
static constexpr auto TAG_BAR = "<bar>";
|
|
static constexpr auto TAG_RAMP = "<ramp>";
|
|
|
|
ramp_t m_ramp;
|
|
label_t m_label;
|
|
progressbar_t m_progressbar;
|
|
string m_path_backlight;
|
|
float m_max_brightness;
|
|
bool m_scroll{false};
|
|
|
|
brightness_handle m_val;
|
|
brightness_handle m_max;
|
|
|
|
int m_percentage = 0;
|
|
};
|
|
} // namespace modules
|
|
|
|
POLYBAR_NS_END
|