small refactors
This commit is contained in:
@@ -30,6 +30,7 @@ target_sources(bar_lib
|
||||
src/services/tray.cpp
|
||||
src/services/notifications.cpp
|
||||
src/widgets/tray.cpp
|
||||
src/widgets/todo.cpp
|
||||
src/components/popover.cpp
|
||||
)
|
||||
include_directories(bar_lib PRIVATE
|
||||
|
||||
@@ -35,5 +35,8 @@ class Bar : public Gtk::Window {
|
||||
class VolumeWidget *volumeWidget = nullptr;
|
||||
|
||||
void setup_ui();
|
||||
void setup_left_box();
|
||||
void setup_center_box();
|
||||
void setup_right_box();
|
||||
void load_css();
|
||||
};
|
||||
|
||||
8
include/widgets/todo.hpp
Normal file
8
include/widgets/todo.hpp
Normal file
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "components/popover.hpp"
|
||||
|
||||
class Todo : public Popover {
|
||||
public:
|
||||
Todo(std::string icon, std::string title);
|
||||
};
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "widgets/date.hpp"
|
||||
#include "widgets/spacer.hpp"
|
||||
#include "widgets/todo.hpp"
|
||||
#include "widgets/volumeWidget.hpp"
|
||||
#include "widgets/workspaceIndicator.hpp"
|
||||
|
||||
@@ -39,6 +40,8 @@ Bar::Bar(GdkMonitor *monitor, HyprlandService &hyprlandService,
|
||||
set_child(main_box);
|
||||
|
||||
this->volumeWidget = Gtk::make_managed<VolumeWidget>();
|
||||
workspaceIndicator = Gtk::make_managed<WorkspaceIndicator>(hyprlandService, monitorId);
|
||||
trayWidget = Gtk::make_managed<TrayWidget>(trayService);
|
||||
|
||||
load_css();
|
||||
setup_ui();
|
||||
@@ -54,33 +57,32 @@ Bar::Bar(GdkMonitor *monitor, HyprlandService &hyprlandService,
|
||||
}
|
||||
|
||||
void Bar::setup_ui() {
|
||||
main_box.set_hexpand(true);
|
||||
|
||||
main_box.set_start_widget(left_box);
|
||||
main_box.set_center_widget(center_box);
|
||||
main_box.set_end_widget(right_box);
|
||||
main_box.set_valign(Gtk::Align::CENTER);
|
||||
|
||||
left_box.set_valign(Gtk::Align::CENTER);
|
||||
|
||||
center_box.set_hexpand(false);
|
||||
center_box.set_valign(Gtk::Align::CENTER);
|
||||
center_box.set_halign(Gtk::Align::CENTER);
|
||||
|
||||
right_box.set_valign(Gtk::Align::CENTER);
|
||||
|
||||
workspaceIndicator = Gtk::make_managed<WorkspaceIndicator>(hyprlandService, monitorId);
|
||||
setup_left_box();
|
||||
setup_center_box();
|
||||
setup_right_box();
|
||||
}
|
||||
|
||||
void Bar::setup_left_box() {
|
||||
left_box.append(*workspaceIndicator);
|
||||
}
|
||||
|
||||
clock.set_name("clock-label");
|
||||
void Bar::setup_center_box() {
|
||||
center_box.set_hexpand(false);
|
||||
|
||||
center_box.append(*(new Todo("\uf23a", "To-Do")));
|
||||
center_box.append(*(new Spacer()));
|
||||
center_box.append(this->date);
|
||||
center_box.append(*(new Spacer()));
|
||||
center_box.append(this->clock);
|
||||
center_box.append(*(new Spacer()));
|
||||
center_box.append(*this->volumeWidget);
|
||||
}
|
||||
|
||||
trayWidget = Gtk::make_managed<TrayWidget>(trayService);
|
||||
void Bar::setup_right_box() {
|
||||
right_box.append(*trayWidget);
|
||||
right_box.append(homeAssistant);
|
||||
}
|
||||
|
||||
9
src/widgets/todo.cpp
Normal file
9
src/widgets/todo.cpp
Normal file
@@ -0,0 +1,9 @@
|
||||
#include <gtkmm/label.h>
|
||||
|
||||
#include "widgets/todo.hpp"
|
||||
|
||||
Todo::Todo(std::string icon, std::string title) : Popover(icon, title) {
|
||||
auto label = Gtk::make_managed<Gtk::Label>(title);
|
||||
label->add_css_class("todo-label");
|
||||
this->set_popover_child(*label);
|
||||
}
|
||||
Reference in New Issue
Block a user