small refactors

This commit is contained in:
2025-12-20 21:05:57 +01:00
parent 47f052f913
commit 36f8b6d8b2
5 changed files with 37 additions and 14 deletions

View File

@@ -30,6 +30,7 @@ target_sources(bar_lib
src/services/tray.cpp src/services/tray.cpp
src/services/notifications.cpp src/services/notifications.cpp
src/widgets/tray.cpp src/widgets/tray.cpp
src/widgets/todo.cpp
src/components/popover.cpp src/components/popover.cpp
) )
include_directories(bar_lib PRIVATE include_directories(bar_lib PRIVATE

View File

@@ -35,5 +35,8 @@ class Bar : public Gtk::Window {
class VolumeWidget *volumeWidget = nullptr; class VolumeWidget *volumeWidget = nullptr;
void setup_ui(); void setup_ui();
void setup_left_box();
void setup_center_box();
void setup_right_box();
void load_css(); void load_css();
}; };

8
include/widgets/todo.hpp Normal file
View File

@@ -0,0 +1,8 @@
#pragma once
#include "components/popover.hpp"
class Todo : public Popover {
public:
Todo(std::string icon, std::string title);
};

View File

@@ -4,6 +4,7 @@
#include "widgets/date.hpp" #include "widgets/date.hpp"
#include "widgets/spacer.hpp" #include "widgets/spacer.hpp"
#include "widgets/todo.hpp"
#include "widgets/volumeWidget.hpp" #include "widgets/volumeWidget.hpp"
#include "widgets/workspaceIndicator.hpp" #include "widgets/workspaceIndicator.hpp"
@@ -39,6 +40,8 @@ Bar::Bar(GdkMonitor *monitor, HyprlandService &hyprlandService,
set_child(main_box); set_child(main_box);
this->volumeWidget = Gtk::make_managed<VolumeWidget>(); this->volumeWidget = Gtk::make_managed<VolumeWidget>();
workspaceIndicator = Gtk::make_managed<WorkspaceIndicator>(hyprlandService, monitorId);
trayWidget = Gtk::make_managed<TrayWidget>(trayService);
load_css(); load_css();
setup_ui(); setup_ui();
@@ -54,33 +57,32 @@ Bar::Bar(GdkMonitor *monitor, HyprlandService &hyprlandService,
} }
void Bar::setup_ui() { void Bar::setup_ui() {
main_box.set_hexpand(true);
main_box.set_start_widget(left_box); main_box.set_start_widget(left_box);
main_box.set_center_widget(center_box); main_box.set_center_widget(center_box);
main_box.set_end_widget(right_box); main_box.set_end_widget(right_box);
main_box.set_valign(Gtk::Align::CENTER);
left_box.set_valign(Gtk::Align::CENTER); setup_left_box();
setup_center_box();
center_box.set_hexpand(false); setup_right_box();
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);
void Bar::setup_left_box() {
left_box.append(*workspaceIndicator); 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(this->date);
center_box.append(*(new Spacer())); center_box.append(*(new Spacer()));
center_box.append(this->clock); center_box.append(this->clock);
center_box.append(*(new Spacer())); center_box.append(*(new Spacer()));
center_box.append(*this->volumeWidget); center_box.append(*this->volumeWidget);
}
trayWidget = Gtk::make_managed<TrayWidget>(trayService); void Bar::setup_right_box() {
right_box.append(*trayWidget); right_box.append(*trayWidget);
right_box.append(homeAssistant); right_box.append(homeAssistant);
} }

9
src/widgets/todo.cpp Normal file
View 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);
}