47 lines
1.6 KiB
C++
47 lines
1.6 KiB
C++
#include "components/todoEntry.hpp"
|
|
|
|
#include <gtkmm/label.h>
|
|
#include <string>
|
|
#include "components/base/button.hpp"
|
|
|
|
TodoEntry::TodoEntry(int id, std::string text, sigc::signal<void(int)> signal_dismissed, sigc::signal<void(int, std::string)> signal_edited)
|
|
: Gtk::Box(Gtk::Orientation::HORIZONTAL) {
|
|
this->id = id;
|
|
this->text = text;
|
|
this->signal_dismissed = signal_dismissed;
|
|
this->signal_edited = signal_edited;
|
|
|
|
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<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));
|
|
|
|
auto editButton = Gtk::make_managed<Button>("\uf044");
|
|
editButton->set_valign(Gtk::Align::CENTER);
|
|
|
|
buttonBox->append(*editButton);
|
|
buttonBox->append(*dismissButton);
|
|
}
|
|
|
|
void TodoEntry::on_dismiss_clicked() {
|
|
this->signal_dismissed.emit(this->id);
|
|
} |