feat: basic config file

This commit is contained in:
Alexis
2018-08-09 12:05:48 +02:00
parent 4cec0f390b
commit 39a0ae04a8
18 changed files with 176 additions and 61 deletions

10
include/IModule.hpp Normal file
View File

@ -0,0 +1,10 @@
#pragma once
namespace waybar {
class IModule {
public:
virtual ~IModule() {}
virtual auto update() -> void = 0;
virtual operator Gtk::Widget &() = 0;
};
}

View File

@ -1,5 +1,6 @@
#pragma once
#include <json/json.h>
#include <gtkmm.h>
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
@ -19,9 +20,11 @@ namespace waybar {
auto setWidth(int) -> void;
auto toggle() -> void;
private:
auto _setupConfig() -> void;
auto _setupWidgets() -> void;
auto _setupCss() -> void;
int _width = 10;
Json::Value _config;
Glib::RefPtr<Gtk::StyleContext> _styleContext;
Glib::RefPtr<Gtk::CssProvider> _cssProvider;
};

View File

@ -21,7 +21,8 @@ namespace waybar {
struct Client {
uint32_t height = 30;
std::string css_file = "./resources/style.css";
std::string cssFile = "./resources/style.css";
std::string configFile = "./resources/config";
Gtk::Main gtk_main;

21
include/factory.hpp Normal file
View File

@ -0,0 +1,21 @@
#pragma once
#include <json/json.h>
#include "modules/clock.hpp"
#include "modules/workspaces.hpp"
#include "modules/battery.hpp"
#include "modules/memory.hpp"
#include "modules/cpu.hpp"
namespace waybar {
class Factory {
public:
Factory(Bar &bar, Json::Value config);
IModule &makeModule(std::string name);
private:
Bar &_bar;
Json::Value _config;
};
}

View File

@ -6,12 +6,13 @@
#include <iostream>
#include <fmt/format.h>
#include "util/chrono.hpp"
#include "IModule.hpp"
namespace waybar::modules {
namespace fs = std::filesystem;
class Battery {
class Battery : public IModule {
public:
Battery();
auto update() -> void;

View File

@ -4,12 +4,14 @@
#include <fmt/format.h>
#include <thread>
#include "util/chrono.hpp"
#include "IModule.hpp"
namespace waybar::modules {
class Clock {
class Clock : public IModule {
public:
Clock();
auto update() -> void;
operator Gtk::Widget &();
private:
Gtk::Label _label;

View File

@ -5,12 +5,14 @@
#include <sys/sysinfo.h>
#include <thread>
#include "util/chrono.hpp"
#include "IModule.hpp"
namespace waybar::modules {
class Cpu {
class Cpu : public IModule {
public:
Cpu();
auto update() -> void;
operator Gtk::Widget &();
private:
Gtk::Label _label;

View File

@ -5,12 +5,14 @@
#include <sys/sysinfo.h>
#include <thread>
#include "util/chrono.hpp"
#include "IModule.hpp"
namespace waybar::modules {
class Memory {
class Memory : public IModule {
public:
Memory();
auto update() -> void;
operator Gtk::Widget &();
private:
Gtk::Label _label;

View File

@ -1,16 +1,16 @@
#pragma once
#include <json/json.h>
#include <fmt/format.h>
#include "bar.hpp"
#include "client.hpp"
#include "util/chrono.hpp"
#include "IModule.hpp"
namespace waybar::modules {
class WorkspaceSelector {
class Workspaces : public IModule {
public:
WorkspaceSelector(waybar::Bar &bar);
Workspaces(waybar::Bar &bar);
auto update() -> void;
void updateThread();
operator Gtk::Widget &();