From a844995c083ca3b86de1a8ecf6f05a4c48e9843a Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Tue, 6 Aug 2024 05:25:41 +0200 Subject: [PATCH] reset XYZ adjustment values to zero --- data/text/théorie.txt | 7 ++++--- include/signal.h | 2 +- include/widget.h | 9 +++++++-- src/signal.c | 5 ++++- src/widget/state/middle.c | 22 +++++++++++++++++++--- 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/data/text/théorie.txt b/data/text/théorie.txt index 2f32a65..1ad7edc 100644 --- a/data/text/théorie.txt +++ b/data/text/théorie.txt @@ -1,12 +1,13 @@ - Représentations des phénomènes par des réécritures de multigraphes géométriques (déc 2017). + Représentations de phénomènes complexes par des réécritures de multigraphes géométriques (déc 2017). Espace, objets. Gem-graph (une abréviation pour "graphes géométriques") permet de représenter par des dessins divers objets en interaction. Ces dessins peuvent ensuite être animés par un automate. - Il est ainsi possible de modéliser des phénomènes complexes - qu'il serait difficile de saisir par des équations. + Il est ainsi possible de modéliser des phénomènes complexes. + (phénomènes complexes = nombreux objets divers + nombreuses interactions diverses) + Il serait difficile de saisir cette diversité par des équations. L'espace où ces dessins sont réalisés est dérivé d'un espace euclidien orthonormé. Il est homogène et isotrope mais doit être discrétisé pour pouvoir être traité automatiquement. diff --git a/include/signal.h b/include/signal.h index da7068d..6a2c9b8 100644 --- a/include/signal.h +++ b/include/signal.h @@ -131,4 +131,4 @@ void on_clicked_search (GtkWidget *btt_menu, gpointer list_box); void on_updating_objects_transparencies (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar); void on_situations_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar); - +void on_resetting_XYZ_in_state_page (); diff --git a/include/widget.h b/include/widget.h index a21fdda..d65dd7d 100644 --- a/include/widget.h +++ b/include/widget.h @@ -142,6 +142,11 @@ void widget_set_object_transparency_to_value (int rank, int value); // top int widget_get_object_transparency (int i); // top +// called by : signal.c +// defined in : widget / state / middle + +void widget_state_XYZ_reset_all(); + /******************************************************************************/ /* R U L E S */ @@ -209,7 +214,7 @@ void *widget_get_user_rules_tree (); // see "labo.c" for specification of the tr /* T E X T S */ /******************************************************************************/ // called by : widget / topbar / polytext.c -// texts in : data / text +// texts in : data / text void *widget_get_text_from_address (gchar *text_name); @@ -229,7 +234,7 @@ void *widget_get_an_impression_of_what_a_rules_comparator_could_be(); /* L A B O */ /******************************************************************************/ // now in : widget / rules / tree_tools -// called by tree.c widget_get_user_rules_tree() +// called by tree.c / widget_get_user_rules_tree() void widget_let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root); diff --git a/src/signal.c b/src/signal.c index e83fd43..efac802 100644 --- a/src/signal.c +++ b/src/signal.c @@ -345,7 +345,10 @@ void on_updating_objects_transparencies (GtkWidget *btt_source, GtkScrollbar *sc fsm_set_preferences_state (TRUE); // << à détailler TODO } - +void on_resetting_XYZ_in_state_page () +{ + widget_state_XYZ_reset_all(); +} // -------------------------- S IT U A T I O N S ------------------------ // diff --git a/src/widget/state/middle.c b/src/widget/state/middle.c index 77672e7..bd96a8c 100644 --- a/src/widget/state/middle.c +++ b/src/widget/state/middle.c @@ -31,6 +31,19 @@ #include "../../../include/widget.h" #include "../../../include/signal.h" +static GtkAdjustment *X_adjust; +static GtkAdjustment *Y_adjust; +static GtkAdjustment *Z_adjust; + +void widget_state_XYZ_reset_all() +{ + printf("WARNING state/middle/widget_state_XYZ_reset_all()\ + agit aussi sur synth/...\ + (tant que les GtkAdjustment *X_adjust, *Y_adjust, *Z_adjust ne sont pas distincts)\n"); + gtk_adjustment_set_value (X_adjust, 0); + gtk_adjustment_set_value (Y_adjust, 0); + gtk_adjustment_set_value (Z_adjust, 0); +} static GtkBox *rec_XYZ_box() { @@ -38,9 +51,9 @@ static GtkBox *rec_XYZ_box() GtkBox *XYZ_scrollbar_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); // GtkWidget *scale_X = gtk_scale_button_new (0, 360, 10, NULL); < à étudier // (double min, double max, double step, const char** icons) - GtkAdjustment *X_adjust = gtk_adjustment_new (rand() % 100, 0, 380, 1, 0, 0); - GtkAdjustment *Y_adjust = gtk_adjustment_new (rand() % 200, 0, 380, 1, 0, 0); - GtkAdjustment *Z_adjust = gtk_adjustment_new (rand() % 300, 0, 380, 1, 0, 0); + X_adjust = gtk_adjustment_new (rand() % 100, 0, 380, 1, 0, 0); + Y_adjust = gtk_adjustment_new (rand() % 200, 0, 380, 1, 0, 0); + Z_adjust = gtk_adjustment_new (rand() % 300, 0, 380, 1, 0, 0); GtkWidget *scroll_X = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, X_adjust); GtkWidget *scroll_Y = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, Y_adjust); GtkWidget *scroll_Z = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, Z_adjust); @@ -54,6 +67,9 @@ static GtkBox *rec_XYZ_box() GtkWidget *btt_reset = gtk_toggle_button_new (); gtk_button_set_icon_name (GTK_BUTTON (btt_reset), "view-refresh-symbolic"); + g_signal_connect (btt_reset, "toggled", + G_CALLBACK (on_resetting_XYZ_in_state_page), scroll_X); + gtk_box_append (XYZ_labels_box, GTK_WIDGET (gtk_label_new ("\nX Y Z"))); gtk_box_append (XYZ_labels_box, GTK_WIDGET (XYZ_scrollbar_box)); gtk_box_append (XYZ_labels_box, GTK_WIDGET (btt_reset));