2024-06-11 00:11:50 +02:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <gtk-4.0/gtk/gtk.h>
|
|
|
|
|
|
|
|
#include "callback.h"
|
2024-06-11 22:01:44 +02:00
|
|
|
#include "automaton.h"
|
2024-06-11 00:11:50 +02:00
|
|
|
#include "display.h"
|
|
|
|
#include "tree.h"
|
|
|
|
#include "texts.h"
|
|
|
|
|
|
|
|
// https://docs.gtk.org/gtk4/visual_index.html < widgets gallery
|
2024-06-11 22:01:44 +02:00
|
|
|
// GTK_ORIENTATION_HORIZONTAL GTK_ORIENTATION_VERTICAL
|
2024-06-11 00:11:50 +02:00
|
|
|
|
2024-06-11 16:39:40 +02:00
|
|
|
/* doc : see > on_dialog_window_activation (...) in callback.c */
|
2024-06-11 00:11:50 +02:00
|
|
|
|
2024-06-11 16:39:40 +02:00
|
|
|
void dialog_window_design (GtkWindow *main_window, GtkWindow *dialog_window){
|
2024-06-11 19:20:44 +02:00
|
|
|
char *title = " Do I need to save the current model before modifying it? ";
|
2024-06-11 00:11:50 +02:00
|
|
|
GtkWidget *header_bar = GTK_WIDGET (gtk_header_bar_new ());
|
|
|
|
gtk_header_bar_set_title_widget (GTK_HEADER_BAR (header_bar), gtk_label_new (title));
|
|
|
|
gtk_window_set_titlebar (dialog_window, header_bar);
|
2024-06-11 16:39:40 +02:00
|
|
|
|
2024-06-11 19:20:44 +02:00
|
|
|
GtkBox *YES_NO_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 400));
|
|
|
|
// gtk_box_layout_new (GTK_ORIENTATION_HORIZONTAL);
|
|
|
|
// gtk_box_layout_set_homogeneous (GTK_BOX (YES_NO_box), TRUE);
|
|
|
|
// gtk_box_set_baseline_position (YES_NO_box, GTK_BASELINE_POSITION_CENTER);
|
|
|
|
|
|
|
|
GtkButton *click_yes = GTK_BUTTON (gtk_button_new_with_label ("YES"));
|
|
|
|
g_signal_connect (click_yes, "clicked", G_CALLBACK (on_SAVE_CURRENT_MODEL_BEFORE_EDITING), NULL);
|
|
|
|
gtk_box_append (YES_NO_box, GTK_WIDGET (click_yes));
|
|
|
|
|
|
|
|
GtkButton *click_no = GTK_BUTTON (gtk_button_new_with_label ("NO"));
|
|
|
|
g_signal_connect (click_no, "clicked", G_CALLBACK (on_DISCARD_CURRENT_MODEL_AND_START_EDITING), NULL);
|
|
|
|
gtk_box_append (YES_NO_box, GTK_WIDGET (click_no));
|
2024-06-11 22:01:44 +02:00
|
|
|
|
|
|
|
GtkButton *action_save_current_model = GTK_BUTTON (gtk_button_new_with_label ("SAVE THE CURRENT MODEL"));
|
|
|
|
g_signal_connect (click_no, "clicked", G_CALLBACK (on_WRITE_THE_CURRENT_MODEL), NULL);
|
|
|
|
|
|
|
|
GtkBox *WINDOW_CHILD_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 0));
|
|
|
|
gtk_box_append (WINDOW_CHILD_box, GTK_WIDGET (YES_NO_box));
|
|
|
|
gtk_box_append (WINDOW_CHILD_box, GTK_WIDGET (gtk_separator_new (GTK_ORIENTATION_VERTICAL)));
|
|
|
|
gtk_box_append (WINDOW_CHILD_box, GTK_WIDGET (action_save_current_model));
|
|
|
|
gtk_window_set_child (dialog_window, GTK_WIDGET (WINDOW_CHILD_box));
|
2024-06-11 16:39:40 +02:00
|
|
|
|
|
|
|
gtk_window_set_transient_for (GTK_WINDOW (dialog_window), GTK_WINDOW (main_window));
|
|
|
|
gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog_window), TRUE);
|
|
|
|
// gtk_window_set_deletable (GTK_WINDOW (dialog_window), FALSE); // FALSE
|
|
|
|
// gtk_window_set_modal (GTK_WINDOW (dialog_window), TRUE);
|
|
|
|
gtk_window_present (GTK_WINDOW (dialog_window));
|
2024-06-11 00:11:50 +02:00
|
|
|
}
|
2024-06-11 16:39:40 +02:00
|
|
|
|
|
|
|
|