image module CSS fix

This commit is contained in:
Brent George 2023-01-24 14:34:02 -05:00
parent dd9e3d0172
commit e128c48573
4 changed files with 21 additions and 15 deletions

View File

@ -7,6 +7,7 @@
#include <string>
#include "ALabel.hpp"
#include "gtkmm/box.h"
#include "util/command.hpp"
#include "util/json.hpp"
#include "util/sleeper_thread.hpp"
@ -15,7 +16,7 @@ namespace waybar::modules {
class Image : public AModule {
public:
Image(const std::string&, const std::string&, const Json::Value&);
Image(const std::string&, const Json::Value&);
auto update() -> void;
void refresh(int /*signal*/);
@ -23,6 +24,7 @@ class Image : public AModule {
void delayWorker();
void handleEvent();
Gtk::Box box_;
Gtk::Image image_;
std::string path_;
int size_;

View File

@ -10,8 +10,6 @@ The *image* module displays an image from a path.
# CONFIGURATION
Addressed by *custom/<name>*
*path*: ++
typeof: string ++
The path to the image.
@ -58,15 +56,15 @@ Addressed by *custom/<name>*
# EXAMPLES
## Spotify:
## mpd:
```
"image/album-art": {
"image#album-art": {
"path": "/tmp/mpd_art",
"size": 32,
"interval": 5,
"on-click": "mpc toggle"
}
```
# STYLE
- *#image*

View File

@ -98,6 +98,9 @@ waybar::AModule* waybar::Factory::makeModule(const std::string& name) const {
if (ref == "disk") {
return new waybar::modules::Disk(id, config_[name]);
}
if (ref == "image") {
return new waybar::modules::Image(id, config_[name]);
}
#ifdef HAVE_DBUSMENU
if (ref == "tray") {
return new waybar::modules::SNI::Tray(id, bar_, config_[name]);
@ -156,8 +159,6 @@ waybar::AModule* waybar::Factory::makeModule(const std::string& name) const {
}
if (ref.compare(0, 7, "custom/") == 0 && ref.size() > 7) {
return new waybar::modules::Custom(ref.substr(7), id, config_[name]);
} else if (ref.compare(0, 6, "image/") == 0 && ref.size() > 6) {
return new waybar::modules::Image(ref.substr(6), id, config_[name]);
}
} catch (const std::exception& e) {
auto err = fmt::format("Disabling module \"{}\", {}", name, e.what());

View File

@ -1,11 +1,16 @@
#include "modules/image.hpp"
#include <spdlog/spdlog.h>
waybar::modules::Image::Image(const std::string& name, const std::string& id,
waybar::modules::Image::Image(const std::string& id,
const Json::Value& config)
: AModule(config, "image-" + name, id, "{}") {
event_box_.add(image_);
: AModule(config, "image", id),
box_(Gtk::ORIENTATION_HORIZONTAL, 0)
{
box_.pack_start(image_);
box_.set_name("image");
if (!id.empty()) {
box_.get_style_context()->add_class(id);
}
event_box_.add(box_);
dp.emit();