AutoCatGnome/gtkpp/Button.cpp

28 lines
636 B
C++

//
// Created by selim on 11.05.2022.
//
#include "Button.h"
namespace gtkpp {
void clickedCallback(GtkButton*, void* data) {
auto button = reinterpret_cast<Button*>(data);
button->_signalClicked.emit();
}
Button::Button() : Widget() {
_widget = gtk_button_new();
g_signal_connect(_widget, "clicked", G_CALLBACK(clickedCallback), this);
}
void Button::setTitle(const std::string &title) {
gtk_button_set_label(GTK_BUTTON(_widget), title.c_str());
}
void Button::onClick(const std::function<void()> &callback) {
_signalClicked.connect(callback);
}
}