add todo setup

This commit is contained in:
2025-12-21 00:36:00 +01:00
parent 36f8b6d8b2
commit 22a1b7e369
13 changed files with 277 additions and 31 deletions

View File

@@ -0,0 +1,45 @@
#include "components/todoEntry.hpp"
#include <gtkmm/label.h>
#include "gtkmm/button.h"
TodoEntry::TodoEntry(int id, std::string text, sigc::signal<void(int)> signal_dismissed)
: Gtk::Box(Gtk::Orientation::HORIZONTAL) {
this->id = id;
this->signal_dismissed = signal_dismissed;
auto box = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::HORIZONTAL);
box->set_hexpand(true);
box->set_halign(Gtk::Align::START);
box->set_valign(Gtk::Align::CENTER);
box->set_name("todo-entry-box");
box->add_css_class("todo-entry-box");
append(*box);
auto label = Gtk::make_managed<Gtk::Label>(text);
label->set_halign(Gtk::Align::START);
label->set_valign(Gtk::Align::CENTER);
box->append(*label);
auto buttonBox = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::HORIZONTAL);
buttonBox->set_halign(Gtk::Align::END);
buttonBox->set_valign(Gtk::Align::CENTER);
append(*buttonBox);
auto dismissButton = Gtk::make_managed<Gtk::Button>("\uf00d");
dismissButton->set_valign(Gtk::Align::CENTER);
dismissButton->set_tooltip_text("Dismiss");
dismissButton->signal_clicked().connect(sigc::mem_fun(*this, &TodoEntry::on_dismiss_clicked));
buttonBox->append(*dismissButton);
}
TodoEntry::~TodoEntry() {
}
void TodoEntry::on_dismiss_clicked() {
this->signal_dismissed.emit(this->id);
}