65 lines
1.7 KiB
C++
65 lines
1.7 KiB
C++
//
|
|
// Created by selim on 10.05.2022.
|
|
//
|
|
|
|
#include "Widget.h"
|
|
|
|
namespace gtkpp {
|
|
|
|
void clickedCallback(GtkButton*, void* data) {
|
|
auto widget = reinterpret_cast<Widget*>(data);
|
|
widget->_signalClicked.emit();
|
|
}
|
|
|
|
void Widget::onClick(const std::function<void()> &callback) {
|
|
_signalClicked.connect(callback);
|
|
}
|
|
|
|
Widget::Widget() {
|
|
_widget = nullptr;
|
|
}
|
|
|
|
Widget::Widget(GtkBuilder *builder, const char *id) {
|
|
_widget = GTK_WIDGET(gtk_builder_get_object(builder, id));
|
|
g_signal_connect(_widget, "clicked", G_CALLBACK(clickedCallback), this);
|
|
}
|
|
|
|
GtkWidget *Widget::gobj() const {
|
|
return _widget;
|
|
}
|
|
|
|
void Widget::setMargins(int margin) {
|
|
gtk_widget_set_margin_top(_widget, margin);
|
|
gtk_widget_set_margin_bottom(_widget, margin);
|
|
gtk_widget_set_margin_start(_widget, margin);
|
|
gtk_widget_set_margin_end(_widget, margin);
|
|
}
|
|
|
|
void Widget::setVAlign(GtkAlign align) {
|
|
gtk_widget_set_valign(_widget, align);
|
|
}
|
|
|
|
void Widget::setVExpand(bool expand) {
|
|
gtk_widget_set_vexpand(_widget, expand);
|
|
}
|
|
|
|
void Widget::setHorizontalMargins(int margin) {
|
|
gtk_widget_set_margin_start(_widget, margin);
|
|
gtk_widget_set_margin_end(_widget, margin);
|
|
}
|
|
|
|
void Widget::setVerticalMargins(int margin) {
|
|
gtk_widget_set_margin_top(_widget, margin);
|
|
gtk_widget_set_margin_bottom(_widget, margin);
|
|
}
|
|
|
|
void Widget::setEnabled(bool enabled) {
|
|
gtk_widget_set_sensitive(_widget, enabled);
|
|
}
|
|
|
|
void Widget::setupSignals() {
|
|
g_signal_connect(_widget, "clicked", G_CALLBACK(clickedCallback), this);
|
|
}
|
|
|
|
}
|