AutoCatGnome/gtkpp/Widget.h

44 lines
908 B
C++

//
// Created by selim on 10.05.2022.
//
#ifndef AUTOCAT_GNOME_WIDGET_H
#define AUTOCAT_GNOME_WIDGET_H
#include <gtk/gtk.h>
#include <sigc++/sigc++.h>
namespace gtkpp {
class Widget {
protected:
GtkWidget* _widget;
private:
sigc::signal<void()> _signalClicked;
private:
friend void clickedCallback(GtkButton*, void* data);
protected:
void setupSignals();
public:
void onClick(const std::function<void()>& callback);
public:
Widget();
Widget(GtkBuilder* builder, const char* id);
[[nodiscard]] GtkWidget* gobj() const;
void setMargins(int margin);
void setVerticalMargins(int margin);
void setHorizontalMargins(int margin);
void setVAlign(GtkAlign align);
void setVExpand(bool expand);
void setEnabled(bool enabled);
};
}
#endif //AUTOCAT_GNOME_WIDGET_H