const char *widget_get_btt_synth_label () {return synth;} < dans widget/topbar/left < mieux +++
This commit is contained in:
parent
3e1ff4a54a
commit
2706aaf7b2
|
@ -77,10 +77,10 @@ void widget_design_text_window (GtkWindow *main_window, GtkWindow *text_window
|
||||||
// called in widget / topbar / dispatch.c / widget_design_main_window()
|
// called in widget / topbar / dispatch.c / widget_design_main_window()
|
||||||
// defined in topbar / left.c
|
// defined in topbar / left.c
|
||||||
|
|
||||||
void *widget_get_btt_synth(); // {return btt_SYNTH;}
|
const char *widget_get_btt_synth_label();
|
||||||
void *widget_get_btt_state(); // {return btt_STATE;}
|
const char *widget_get_btt_state_label();
|
||||||
void *widget_get_btt_rules(); // {return btt_RULES;}
|
const char *widget_get_btt_rules_label();
|
||||||
void *widget_get_btt_data(); // {return btt_DATA;}
|
const char *widget_get_btt_data_label();
|
||||||
|
|
||||||
// called in widget / topbar / dispatch.c / widget_design_main_window()
|
// called in widget / topbar / dispatch.c / widget_design_main_window()
|
||||||
// defined in widget / topbar / left.c
|
// defined in widget / topbar / left.c
|
||||||
|
|
55
src/signal.c
55
src/signal.c
|
@ -244,13 +244,13 @@ void on_write_current_model (GtkWidget *btt_write_current_model,
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* T O P B A R W I D G E T S */
|
/* T O P B A R L E F T W I D G E T S */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
// ----------------------- E X E C / E D I T -------------------------- //
|
|
||||||
|
|
||||||
static void switch_state_rules_data();
|
static void switch_state_rules_data();
|
||||||
|
|
||||||
|
// ----------------------- E X E C / E D I T -------------------------- //
|
||||||
|
|
||||||
void on_toggle_exec_edit (GtkWidget *toggled_button, gpointer user_data)
|
void on_toggle_exec_edit (GtkWidget *toggled_button, gpointer user_data)
|
||||||
{
|
{
|
||||||
fsm_journal_event (INFO, BUTTON, "signal", "toggle exec edit()",
|
fsm_journal_event (INFO, BUTTON, "signal", "toggle exec edit()",
|
||||||
|
@ -270,7 +270,7 @@ void on_toggle_exec_edit (GtkWidget *toggled_button, gpointer user_data)
|
||||||
|
|
||||||
// https://docs.gtk.org/gtk4/class.Window.html TODO 2024-06-30
|
// https://docs.gtk.org/gtk4/class.Window.html TODO 2024-06-30
|
||||||
// gtk_window_present (GTK_WINDOW (widget_get_dialog_window()));
|
// gtk_window_present (GTK_WINDOW (widget_get_dialog_window()));
|
||||||
// // works once only A window should be created each time
|
// // works onstrcmpce only A window should be created each time
|
||||||
|
|
||||||
fsm_set_exec_edit (EDIT);
|
fsm_set_exec_edit (EDIT);
|
||||||
// TODO set_btt_SYNTH_active (FALSE)
|
// TODO set_btt_SYNTH_active (FALSE)
|
||||||
|
@ -283,6 +283,25 @@ void on_toggle_exec_edit (GtkWidget *toggled_button, gpointer user_data)
|
||||||
|
|
||||||
// ------------------ S T A T E / R U L E S / D A T A --------------- //
|
// ------------------ S T A T E / R U L E S / D A T A --------------- //
|
||||||
|
|
||||||
|
void on_toggle_state_rules_data (GtkWidget *toggled_button, gpointer user_data)
|
||||||
|
{
|
||||||
|
const char *toggled_button_name
|
||||||
|
= gtk_check_button_get_label (GTK_CHECK_BUTTON (toggled_button));
|
||||||
|
fsm_journal_event (DEBUG, BUTTON, "signal", "toggle_state_rules_data()",
|
||||||
|
concat ("change of status requested", ": [", toggled_button_name, "]", NULL));
|
||||||
|
int is_active = gtk_check_button_get_active (GTK_CHECK_BUTTON (toggled_button));
|
||||||
|
|
||||||
|
if ( ! strcmp (toggled_button_name, widget_get_btt_synth_label())) fsm_set_state_rules_data (SYNTH);
|
||||||
|
if ( ! strcmp (toggled_button_name, widget_get_btt_state_label())) fsm_set_state_rules_data (STATE);
|
||||||
|
if ( ! strcmp (toggled_button_name, widget_get_btt_rules_label())) fsm_set_state_rules_data (RULES);
|
||||||
|
if ( ! strcmp (toggled_button_name, widget_get_btt_data_label())) fsm_set_state_rules_data (DATA);
|
||||||
|
|
||||||
|
if (is_active) switch_state_rules_data();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------- S T A T I C S W I T C H -------------------- //
|
||||||
|
|
||||||
static void switch_state_rules_data()
|
static void switch_state_rules_data()
|
||||||
{
|
{
|
||||||
int value = fsm_get_state_rules_data();
|
int value = fsm_get_state_rules_data();
|
||||||
|
@ -340,32 +359,10 @@ static void switch_state_rules_data()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Il doit y avoir plus élégant,... ET SURTOUT MOINS DANGEREUX !!!
|
|
||||||
// que d'utiliser: strcmp (toggled_button_name, "label_du_bouton") car:
|
|
||||||
// ces labels sont utilisés pour deux fonctions distinctes:
|
|
||||||
// (1) ici (just below): pour changer l'état de la fsm
|
|
||||||
// et là: src/widget/topbar/left.c:
|
|
||||||
// btt_SYNTH = GTK_BUTTON (gtk_check_button_new_with_label ("synth"));
|
|
||||||
// pour changer la page (le widget) affiché
|
|
||||||
// IL FAUT REGROUPER CES DEUX FONCTIONS
|
|
||||||
|
|
||||||
void on_toggle_state_rules_data (GtkWidget *toggled_button, gpointer user_data)
|
|
||||||
{
|
|
||||||
const char *toggled_button_name
|
|
||||||
= gtk_check_button_get_label (GTK_CHECK_BUTTON (toggled_button));
|
|
||||||
fsm_journal_event (DEBUG, BUTTON, "signal", "toggle_state_rules_data()",
|
|
||||||
concat ("change of status requested", ": [", toggled_button_name, "]", NULL));
|
|
||||||
int is_active = gtk_check_button_get_active (GTK_CHECK_BUTTON (toggled_button));
|
|
||||||
|
|
||||||
if ( ! strcmp (toggled_button_name, "synth")) fsm_set_state_rules_data (SYNTH);
|
|
||||||
if ( ! strcmp (toggled_button_name, "state")) fsm_set_state_rules_data (STATE);
|
|
||||||
if ( ! strcmp (toggled_button_name, "rules")) fsm_set_state_rules_data (RULES);
|
|
||||||
if ( ! strcmp (toggled_button_name, "results")) fsm_set_state_rules_data (DATA);
|
|
||||||
|
|
||||||
if (is_active) switch_state_rules_data();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* T O P B A R R I G H T W I D G E T S */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
// ------------ M E N U / S E A R C H / H O M E / E T C ----------- //
|
// ------------ M E N U / S E A R C H / H O M E / E T C ----------- //
|
||||||
|
|
||||||
|
|
|
@ -34,12 +34,17 @@
|
||||||
/* M A I N W I N D O W T O P B A R ( L E F T ) */
|
/* M A I N W I N D O W T O P B A R ( L E F T ) */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
// ! WARNING ! IL SERAIT DANGEREUX DE REDEFINIR LE LABEL D'UN BOUTON
|
||||||
|
// DANS LE PROGRAMME AILLEURS QU'ICI (OU PLUS D'UNE FOIS)
|
||||||
|
//
|
||||||
|
// par exemple: grep -r '"synth"' < ne doit renvoyer q'UNE SEULE ligne
|
||||||
|
|
||||||
static GtkButton *btt_SYNTH, *btt_STATE, *btt_RULES, *btt_DATA;
|
static GtkButton *btt_SYNTH, *btt_STATE, *btt_RULES, *btt_DATA;
|
||||||
|
|
||||||
void *widget_get_btt_synth () {return btt_SYNTH;}
|
const char *widget_get_btt_synth_label () {return "synth";}
|
||||||
void *widget_get_btt_state () {return btt_STATE;}
|
const char *widget_get_btt_state_label () {return "state";}
|
||||||
void *widget_get_btt_rules () {return btt_RULES;}
|
const char *widget_get_btt_rules_label () {return "rules";}
|
||||||
void *widget_get_btt_data () {return btt_DATA;}
|
const char *widget_get_btt_data_label () {return "results";}
|
||||||
|
|
||||||
void window_design_topbar_left (GtkWidget *header_bar)
|
void window_design_topbar_left (GtkWidget *header_bar)
|
||||||
{
|
{
|
||||||
|
@ -56,20 +61,20 @@ void window_design_topbar_left (GtkWidget *header_bar)
|
||||||
|
|
||||||
GtkCheckButton *group_state_rules_data = GTK_CHECK_BUTTON (gtk_check_button_new ());
|
GtkCheckButton *group_state_rules_data = GTK_CHECK_BUTTON (gtk_check_button_new ());
|
||||||
|
|
||||||
btt_SYNTH = GTK_BUTTON (gtk_check_button_new_with_label ("synth"));
|
btt_SYNTH = GTK_BUTTON (gtk_check_button_new_with_label (widget_get_btt_synth_label()));
|
||||||
g_signal_connect (btt_SYNTH, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
g_signal_connect (btt_SYNTH, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
||||||
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_SYNTH), group_state_rules_data);
|
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_SYNTH), group_state_rules_data);
|
||||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_SYNTH), FALSE); // << TODO
|
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_SYNTH), FALSE); // << TODO
|
||||||
|
|
||||||
btt_STATE = GTK_BUTTON (gtk_check_button_new_with_label ("state"));
|
btt_STATE = GTK_BUTTON (gtk_check_button_new_with_label (widget_get_btt_state_label()));
|
||||||
g_signal_connect (btt_STATE, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
g_signal_connect (btt_STATE, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
||||||
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_STATE), group_state_rules_data);
|
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_STATE), group_state_rules_data);
|
||||||
|
|
||||||
btt_RULES = GTK_BUTTON (gtk_check_button_new_with_label ("rules"));
|
btt_RULES = GTK_BUTTON (gtk_check_button_new_with_label (widget_get_btt_rules_label()));
|
||||||
g_signal_connect (btt_RULES, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
g_signal_connect (btt_RULES, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
||||||
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_RULES), group_state_rules_data);
|
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_RULES), group_state_rules_data);
|
||||||
|
|
||||||
btt_DATA = GTK_BUTTON (gtk_check_button_new_with_label ("results"));
|
btt_DATA = GTK_BUTTON (gtk_check_button_new_with_label (widget_get_btt_data_label()));
|
||||||
g_signal_connect (btt_DATA, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
g_signal_connect (btt_DATA, "toggled", G_CALLBACK (on_toggle_state_rules_data), no_local_data);
|
||||||
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_DATA), group_state_rules_data);
|
gtk_check_button_set_group (GTK_CHECK_BUTTON (btt_DATA), group_state_rules_data);
|
||||||
|
|
||||||
|
@ -93,12 +98,12 @@ void window_design_topbar_left (GtkWidget *header_bar)
|
||||||
/* THE LAST ONE IS THE WINNER (AND THE WINNER TAKES IT ALL !...) */
|
/* THE LAST ONE IS THE WINNER (AND THE WINNER TAKES IT ALL !...) */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
if (YOU_WANT_TO_START_ON_ANOTHER_PAGE) { // select one
|
if (YOU_WANT_TO_START_ON_ANOTHER_PAGE) { // select one
|
||||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (widget_get_btt_synth()), TRUE);
|
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_SYNTH), TRUE);
|
||||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (widget_get_btt_rules()), TRUE);
|
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_STATE), TRUE);
|
||||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (widget_get_btt_state()), TRUE);
|
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_RULES), TRUE);
|
||||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (widget_get_btt_data()), TRUE);
|
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_DATA), TRUE);
|
||||||
} else
|
} else
|
||||||
gtk_check_button_set_active (GTK_CHECK_BUTTON (widget_get_btt_rules()), TRUE);
|
gtk_check_button_set_active (GTK_CHECK_BUTTON (btt_RULES), TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue