From 3a4e781aa4ec052b819a33ba27e2f6a5b78696ff Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 27 Mar 2025 19:44:46 +0100 Subject: adw: add more dialog functions --- adw/src/dialog.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) (limited to 'adw/src/dialog.cpp') diff --git a/adw/src/dialog.cpp b/adw/src/dialog.cpp index 8047d65..868ad22 100644 --- a/adw/src/dialog.cpp +++ b/adw/src/dialog.cpp @@ -74,10 +74,10 @@ namespace turns::adw { } - auto Dialog::add_breakpoint(adw::Breakpoint && breakpoint) -> void + auto Dialog::add_breakpoint(Glib::RefPtr const & breakpoint) -> void { - breakpoint.reference(); - adw_dialog_add_breakpoint(Glib::unwrap(this), Glib::unwrap(&breakpoint)); + // Take a copy because the dialog will take ownership of the breakpoint. + adw_dialog_add_breakpoint(Glib::unwrap(this), Glib::unwrap_copy(breakpoint)); } auto Dialog::close() -> void @@ -85,6 +85,46 @@ namespace turns::adw adw_dialog_close(Glib::unwrap(this)); } + auto Dialog::force_close() -> void + { + adw_dialog_force_close(Glib::unwrap(this)); + } + + auto Dialog::get_can_close() const -> bool + { + return adw_dialog_get_can_close(const_cast(Glib::unwrap(this))); + } + + auto Dialog::get_child() const -> Gtk::Widget * + { + return Glib::wrap(adw_dialog_get_child(const_cast(Glib::unwrap(this))), true); + } + + auto Dialog::get_content_height() const -> int + { + return adw_dialog_get_content_height(const_cast(Glib::unwrap(this))); + } + + auto Dialog::get_content_width() const -> int + { + return adw_dialog_get_content_width(const_cast(Glib::unwrap(this))); + } + + auto Dialog::get_current_breakpoint() const -> Glib::RefPtr + { + return Glib::wrap(adw_dialog_get_current_breakpoint(const_cast(Glib::unwrap(this))), true); + } + + auto Dialog::get_default_widget() const -> Gtk::Widget * + { + return Glib::wrap(adw_dialog_get_default_widget(const_cast(Glib::unwrap(this)))); + } + + auto Dialog::get_focus() const -> Gtk::Widget * + { + return Glib::wrap(adw_dialog_get_focus(const_cast(Glib::unwrap(this)))); + } + auto Dialog::present(Gtk::Widget * parent) -> void { adw_dialog_present(Glib::unwrap(this), Glib::unwrap(parent)); @@ -99,8 +139,8 @@ namespace turns::adw namespace Glib { - auto wrap(AdwDialog * object, bool copy) -> Glib::RefPtr + auto wrap(AdwDialog * object, bool copy) -> turns::adw::Dialog * { - return Glib::make_refptr_for_instance(dynamic_cast(Glib::wrap_auto(G_OBJECT(object), copy))); + return dynamic_cast(Glib::wrap_auto(G_OBJECT(object), copy)); } } // namespace Glib \ No newline at end of file -- cgit v1.2.3