summaryrefslogtreecommitdiff
path: root/adw/src
diff options
context:
space:
mode:
Diffstat (limited to 'adw/src')
-rw-r--r--adw/src/alertdialog.cpp85
-rw-r--r--adw/src/wrap_init.cpp3
2 files changed, 88 insertions, 0 deletions
diff --git a/adw/src/alertdialog.cpp b/adw/src/alertdialog.cpp
new file mode 100644
index 0000000..83afaa1
--- /dev/null
+++ b/adw/src/alertdialog.cpp
@@ -0,0 +1,85 @@
+#include "adwaitamm/alertdialog.hpp"
+
+#include <glibmm/class.h>
+#include <glibmm/object.h>
+#include <glibmm/objectbase.h>
+#include <glibmm/refptr.h>
+#include <glibmm/ustring.h>
+#include <glibmm/utility.h>
+#include <glibmm/wrap.h>
+
+#include <gtkmm/init.h>
+#include <gtkmm/object.h>
+#include <gtkmm/private/widget_p.h>
+#include <gtkmm/widget.h>
+
+#include <adwaitamm/dialog.hpp>
+
+#include <adwaita.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+
+namespace Adwaita
+{
+
+ namespace
+ {
+ auto constinit _class = AlertDialog::Class{};
+ } // namespace
+
+ auto AlertDialog::Class::init() -> Glib::Class const &
+ {
+ if (!gtype_)
+ {
+ class_init_func_ = &class_init_function;
+ register_derived_type(adw_alert_dialog_get_type());
+ }
+ return *this;
+ }
+
+ auto AlertDialog::Class::class_init_function(void * gclass, void * data) -> void
+ {
+ auto const klass = static_cast<BaseClassType *>(gclass);
+ CppClassParent::class_init_function(klass, data);
+ }
+
+ auto AlertDialog::Class::wrap_new(GObject * object) -> Glib::ObjectBase *
+ {
+ return Gtk::manage(new AlertDialog(ADW_ALERT_DIALOG(object)));
+ }
+
+ auto AlertDialog::get_type() -> GType
+ {
+ return _class.init().get_type();
+ }
+
+ auto AlertDialog::get_base_type() -> GType
+ {
+ return adw_alert_dialog_get_type();
+ }
+
+ AlertDialog::AlertDialog(Glib::ConstructParams const & params)
+ : Dialog{params}
+ {
+ }
+
+ AlertDialog::AlertDialog(BaseObjectType * gobj)
+ : Dialog(ADW_DIALOG(gobj))
+ {
+ }
+
+ AlertDialog::AlertDialog(Glib::ustring heading, Glib::ustring body)
+ : Glib::ObjectBase{nullptr}
+ , Dialog{Glib::ConstructParams{_class.init(), "heading", heading.c_str(), "body", Glib::c_str_or_nullptr(body), nullptr}}
+ {
+ }
+
+} // namespace Adwaita
+
+namespace Glib
+{
+ auto wrap(AdwAlertDialog * object, bool copy) -> Adwaita::AlertDialog *
+ {
+ return dynamic_cast<Adwaita::AlertDialog *>(Glib::wrap_auto(G_OBJECT(object), copy));
+ }
+} // namespace Glib \ No newline at end of file
diff --git a/adw/src/wrap_init.cpp b/adw/src/wrap_init.cpp
index b48ecd0..8cad77d 100644
--- a/adw/src/wrap_init.cpp
+++ b/adw/src/wrap_init.cpp
@@ -1,6 +1,7 @@
#include "adwaitamm/wrap_init.hpp"
#include "adwaitamm/actionrow.hpp"
+#include "adwaitamm/alertdialog.hpp"
#include "adwaitamm/application.hpp"
#include "adwaitamm/applicationwindow.hpp"
#include "adwaitamm/breakpoint.hpp"
@@ -25,6 +26,7 @@ namespace Adwaita
auto wrap_init() -> void
{
WRAP_CLASS(ActionRow, action_row);
+ WRAP_CLASS(AlertDialog, alert_dialog);
WRAP_CLASS(Application, application);
WRAP_CLASS(ApplicationWindow, application_window);
WRAP_CLASS(Breakpoint, breakpoint);
@@ -37,6 +39,7 @@ namespace Adwaita
WRAP_CLASS(ToastOverlay, toast_overlay);
ENSURE_TYPE(ActionRow);
+ ENSURE_TYPE(AlertDialog);
ENSURE_TYPE(Application);
ENSURE_TYPE(ApplicationWindow);
ENSURE_TYPE(Breakpoint);