Added function to set custom data command for exit config check window

pull/55/head
parent 4ff84ab7e6
commit 69434f9181
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -233,9 +233,19 @@ int yon_ubl_connect_config(_template_config *config){
return replaces; return replaces;
} }
gboolean on_window_delete (GtkWidget *, GdkEvent *,template_main_window *widgets){ gboolean on_window_delete (GtkWidget *self, GdkEvent *,template_main_window *){
template_saving_window *window = yon_exit_window_new(); template_saving_window *window = yon_exit_window_new();
if (window){ if (window){
GCallback delete_callback = g_object_get_data(G_OBJECT(self),"exit_data_callback");
if (delete_callback){
((void(*)(template_saving_window*))delete_callback)(window);
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter)){
gtk_widget_destroy(window->Window);
free(window);
return 0;
}
}
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
return 1; return 1;
} }
@ -246,6 +256,11 @@ void yon_window_remove_exit_config_check(template_main_window *widgets){
g_signal_handlers_disconnect_by_func(G_OBJECT(widgets->Window),G_CALLBACK(on_window_delete),widgets); g_signal_handlers_disconnect_by_func(G_OBJECT(widgets->Window),G_CALLBACK(on_window_delete),widgets);
} }
void yon_window_set_exit_config_check(template_main_window *widgets, GCallback data_callback_function){
g_signal_connect(G_OBJECT(widgets->Window),"delete-event",G_CALLBACK(on_window_delete),widgets->Window);
g_object_set_data(G_OBJECT(widgets->Window),"exit_data_callback",data_callback_function);
}
template_main_window *setup_window(){ template_main_window *setup_window(){
/* Widgets getting | Получение виджетов */ /* Widgets getting | Получение виджетов */
template_main_window *widgets = malloc(sizeof(template_main_window)); template_main_window *widgets = malloc(sizeof(template_main_window));
@ -318,7 +333,7 @@ template_main_window *setup_window(){
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),template_app_information.wiki_link); g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),template_app_information.wiki_link);
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),template_app_information.app_version); g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),template_app_information.app_version);
// g_signal_connect(G_OBJECT(widgets->Window),"delete-event",G_CALLBACK(on_window_delete),widgets); g_signal_connect(G_OBJECT(widgets->Window),"delete-event",G_CALLBACK(on_window_delete),NULL);
if (yon_char_is_empty(__yon_config_mode)){ if (yon_char_is_empty(__yon_config_mode)){
int size; int size;

@ -325,6 +325,8 @@ void yon_ubl_settings_window_set_standard_callbacks(template_main_window *widget
void yon_window_remove_exit_config_check(template_main_window *widgets); void yon_window_remove_exit_config_check(template_main_window *widgets);
void yon_window_set_exit_config_check(template_main_window *widgets, GCallback data_callback_function);
typedef struct { typedef struct {
GtkWidget *Window; GtkWidget *Window;
GtkWidget *HeaderTopic; GtkWidget *HeaderTopic;

Loading…
Cancel
Save