From 73cda3992aaed2f07d1148b63fc36e8fba25b4f3 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Sat, 6 Jul 2024 23:09:47 +0200 Subject: [PATCH] =?UTF-8?q?De=20la=20documentation=20(dans=20main.c)=20sur?= =?UTF-8?q?=20l'architecture=20g=C3=A9n=C3=A9rale?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/callbacks.c | 23 +++++++++++------------ src/main.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 57 insertions(+), 15 deletions(-) diff --git a/src/callbacks.c b/src/callbacks.c index 0496564..2825b37 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -62,6 +62,8 @@ void on_main_window_activation (GtkApplication *app, { set_main_window (app); widget_MAIN_WINDOW_design (get_main_window()); + g_signal_connect (app, "activate", G_CALLBACK (on_dialog_window_activation), NULL); + g_signal_connect (app, "activate", G_CALLBACK (on_text_window_activation), NULL); } @@ -322,25 +324,16 @@ void on_toggle_STATE_RULES_DATA (GtkWidget *toggled_button, gpointer user_data) } } + void on_OBJECTS_box_RESET_VALUE (GtkAdjustment *adjustment, gpointer data) { - printf ("callback.on_OBJECTS_box_DO_RESET()\n"); + printf ("callback.on_OBJECTS_box_DO_RESET() %f\n",\ + gtk_adjustment_get_value (adjustment)); } void on_SITUATIONS_box_RESET_VALUE (GtkAdjustment *adjustment, gpointer data) {} - - - - -void on_clicked_MENU (GtkWidget *btt_reset, gpointer menu_button) {go_to_the_lab (menu_button);} - - - - - - void on_OBJECTS_box_DO_RESET (GtkWidget *btt_reset, gpointer data) { printf ("callback.on_OBJECTS_box_DO_RESET()\ @@ -356,6 +349,12 @@ void on_SITUATIONS_box_DO_RESET (GtkWidget *btt_reset, gpointer data) set_SITUATIONS_box_RESET_VALUE (1); } + + + +void on_clicked_MENU (GtkWidget *btt_reset, gpointer menu_button) {go_to_the_lab (menu_button);} + + // GTK itself does not support event sounds, << A GREAT WAY TO DEBUG ! TODO // you have to use a loadable module like the one that comes with libcanberra. diff --git a/src/main.c b/src/main.c index 8dd9cff..995d6b9 100644 --- a/src/main.c +++ b/src/main.c @@ -32,19 +32,62 @@ #include "../include/callbacks.h" +/* Tous les callbacks sont dans le fichier 'src/callbacks.c' + * et leur nom commence par: 'on_' + * (aucun autre nom de fonction ne commence par 'on_'). + * S'ils deviennent trop nombreux, ils seront répartis + * dans des fichiers regroupés dans un dossier: 'src/callbacks.c'. + * (ou 'src/callbacks' ?) + * La description des fonctions devrait plutôt précéder ces fonctions + * pour alléger le fichier 'callbacks.h' (?) */ + +/* La description de l'aspect (du 'design') des fenêtres + * se trouve dans le dossier 'widget.c' + * et s'organise naturellement en arborescence + * qu'il sera facile de répartir en dossiers et fichiers + * au fur à mesure de leur développement. + * + * Actuellement, par exemple, la fenêtre principale comporte + * une barre de titre (décrite dans 'headers.c') + * et s'ouvre sur la vue de l'état ('state.c') en mode 'EXEC'. + * Cette vue comporte trois panneaux (widgets) principaux: + * sup, moyen, inf ou encore: CONTRAST, CAMERA, CONTROL ou EDIT + * si on veut les nommer d'après leur fonction. + * + * Lorsque la description de chaque widget s'affinera + * et demandera plus de place, les trois widgets principaux + * deviendront des dossiers et les widgets qu'ils contiennent + * des fichiers (ou des dossiers si besoin) et ainsi de suite... + * + * Dans cette logique, l'actuel ficher 'tree.c' doit être + * soit inclus dans le fichier 'rules.c' + * (puisque l'arbre des utilisateurs est dans le widget (= la page) 'rules') + * ou, s'il est trop volumineux, et pour faciliter la lisibilité, + * dans un dossier 'rules.c' (ou 'rules' ?) + * qui regroupera les différents widgets du widget 'rules'. + * (NB labo.c disparaitra, bien sûr !) + * + * Les fonctions 'transversales' comme celles de + * 'graph' 'parse' ou - surtout - 'automat', + * qui doivent pouvoir être accédées par un grand nombre + * de widgets ou de callbacks restent à la racine 'src/' + * + * Pour l'instant, le 'include' de 'automat' est dans 'base.h'. + * C'est une erreur (tolérable tant qu'automat est à l'état embryonnaire). + * À terme, il y aura un fichier 'automat.h' dans le dossier 'include' */ + + int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("org.jean.gg_hack", G_APPLICATION_DEFAULT_FLAGS); - g_signal_connect (app, "activate", G_CALLBACK (on_main_window_activation), NULL); - g_signal_connect (app, "activate", G_CALLBACK (on_dialog_window_activation), NULL); - g_signal_connect (app, "activate", G_CALLBACK (on_text_window_activation), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); + return status; }