From c9362150d8b7322551e8651f0c9636c472597d3a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 12 Jan 2024 11:54:21 +0600 Subject: [PATCH] Confirmation dialog edits for more flexibility --- source/libublsettingsui-gtk3.c | 5 +++-- source/libublsettingsui-gtk3.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 3b79a20..11018db 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -338,7 +338,7 @@ template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...){ } -void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data){ +int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data){ GtkWidget *dialog = gtk_dialog_new_with_buttons(template_app_information.app_title,GTK_WINDOW(gtk_widget_get_toplevel(self)),GTK_DIALOG_MODAL,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",template_app_information.app_title)); gtk_window_set_title(GTK_WINDOW(dialog),template_app_information.app_title); @@ -374,10 +374,11 @@ void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),box,1,1,5); int resp = gtk_dialog_run(GTK_DIALOG(dialog)); - if (resp == GTK_RESPONSE_ACCEPT){ + if (resp == GTK_RESPONSE_ACCEPT&&data->function){ data->function(NULL,data->data); } gtk_widget_destroy(dialog); + return resp; } // standard functions diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 054fb69..d3ff959 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -160,7 +160,7 @@ typedef struct { char *action_text; } dialog_confirmation_data; -void yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data); +int yon_confirmation_dialog_call(GtkWidget *self,dialog_confirmation_data *data); template_saving_window *yon_save_proceed(char *path,YON_CONFIG_TYPE type, ...);