// // Created by selim on 10.05.2022. // #ifndef AUTOCAT_GNOME_WIDGET_H #define AUTOCAT_GNOME_WIDGET_H #include #include namespace gtkpp { class Widget { protected: GtkWidget* _widget; private: sigc::signal _signalClicked; private: friend void clickedCallback(GtkButton*, void* data); protected: void setupSignals(); public: void onClick(const std::function& callback); public: Widget(); explicit Widget(GtkWidget* 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 setHExpand(bool expand); void setEnabled(bool enabled); void show(); void hide(); }; } #endif //AUTOCAT_GNOME_WIDGET_H