#include "create-category.h" struct _FlashcardsCreateCategoryDialog { AdwAlertDialog parent; GtkEditable *entry; FlashcardsAppWindow *win; }; G_DEFINE_TYPE (FlashcardsCreateCategoryDialog, flashcards_create_category_dialog, ADW_TYPE_ALERT_DIALOG); static void on_response (__attribute__ ((unused)) AdwAlertDialog *dialog, const gchar *response, gpointer user_data) { FlashcardsCreateCategoryDialog *self = user_data; const gchar *category = gtk_editable_get_text (self->entry); if (strcmp (response, "add") == 0 && strlen (category) > 0) flashcards_app_window_add_category (self->win, category); } static void flashcards_create_category_dialog_init (FlashcardsCreateCategoryDialog *self) { gtk_widget_init_template (GTK_WIDGET (self)); } static void flashcards_create_category_dialog_class_init ( FlashcardsCreateCategoryDialogClass *klass) { gtk_widget_class_set_template_from_resource ( GTK_WIDGET_CLASS (klass), "/li/sopht/flashcards/create-category.ui"); gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), FlashcardsCreateCategoryDialog, entry); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), on_response); } FlashcardsCreateCategoryDialog * flashcards_create_category_dialog_new (FlashcardsAppWindow *win) { FlashcardsCreateCategoryDialog *self = g_object_new (FLASHCARDS_CREATE_CATEGORY_DIALOG_TYPE, nullptr); self->win = win; return self; }