some comments in the 'include' files
This commit is contained in:
parent
11bcd85d68
commit
c30a50b089
|
@ -14,6 +14,6 @@
|
||||||
#include <gtk-4.0/gtk/gtk.h>
|
#include <gtk-4.0/gtk/gtk.h>
|
||||||
|
|
||||||
void on_preferences_action(GSimpleAction *action,
|
void on_preferences_action(GSimpleAction *action,
|
||||||
GVariant *parameter,
|
GVariant *parameter,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* *
|
* *
|
||||||
* Gem-graph client *
|
* Gem-graph client *
|
||||||
* *
|
* *
|
||||||
* Base header *
|
* Finite State Machine (fsm) header *
|
||||||
* *
|
* *
|
||||||
* Copyright © 2021 Libre en Communs <contact@a-lec.org> *
|
* Copyright © 2021 Libre en Communs <contact@a-lec.org> *
|
||||||
* Copyright © 2021 Adrien Bourmault <neox@a-lec.org> *
|
* Copyright © 2021 Adrien Bourmault <neox@a-lec.org> *
|
||||||
|
|
112
include/signal.h
112
include/signal.h
|
@ -31,71 +31,103 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <gtk-4.0/gtk/gtk.h>
|
#include <gtk-4.0/gtk/gtk.h>
|
||||||
|
|
||||||
// on_windows_activation (app) is in 'init.c' (not 'signal.c') for simplicity
|
|
||||||
void on_windows_activation (GtkApplication *app, gpointer user_data);
|
// void on_auto_notification (const char *message); (see "signal.c")
|
||||||
// all other callbacks are in 'signal.c'
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* W I N D O W S */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/* "on_windows_activation (app)" is the only function called by "main.c" using :
|
||||||
|
* g_signal_connect (app, "activate", G_CALLBACK (on_windows_activation), NULL);
|
||||||
|
* and the only signal function outside "signals.c".
|
||||||
|
|
||||||
|
* It is found in "init.c", where all the various windows are declared as static :
|
||||||
|
* (static GtkWindow *main_window, *dialog_window, *text_window;)
|
||||||
|
* and where are all the functions useful for initiating and designing these windows.
|
||||||
|
|
||||||
|
* It is called only once in "main.c" and nowhere else.
|
||||||
|
*
|
||||||
|
* It creates all the windows, using for each of them
|
||||||
|
* 1) the "gtk_application_window_new (app)" and
|
||||||
|
* 2) a specific "widget_design_name_of_the_window() function
|
||||||
|
* which is in "topbar.c" (last one) (see widget.h)
|
||||||
|
*/
|
||||||
|
void on_windows_activation (GtkApplication *app);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* W I D G E T S */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/* All the callbacks except "on_windows_activation (app)" are in "signal.c" */
|
||||||
|
/* (see details below) */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* F I N I T E S T A T E M A C H I N E (fsm) */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/* { EXEC xor EDIT } and { STATE xor RULES xor DATA } are states of the fsm */
|
||||||
|
|
||||||
void on_toggle_exec_edit (GtkWidget *btt_XOR_EXEC_EDIT, gpointer user_data);
|
void on_toggle_exec_edit (GtkWidget *btt_XOR_EXEC_EDIT, gpointer user_data);
|
||||||
void on_toggle_state_rules_data (GtkWidget *btt_STATE_RULES_DATA, gpointer user_data);
|
void on_toggle_state_rules_data (GtkWidget *btt_STATE_RULES_DATA, gpointer user_data);
|
||||||
//void on_toggle_model_run_stop (GtkWidget *btt_MODEL_RUN_STOP, gpointer data);
|
// void on_toggle_model_run_stop (GtkWidget *btt_MODEL_RUN_STOP, gpointer data);
|
||||||
|
|
||||||
//void on_open_state (GtkWidget *btt_open_STATE, gpointer data);
|
|
||||||
//void on_open_rules (GtkWidget *btt_open_RULES, gpointer data);
|
|
||||||
//void on_open_data (GtkWidget *btt_open_DATA, gpointer data);
|
/******************************************************************************/
|
||||||
|
/* D I A L O G W I N D O W */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
void on_save_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, gpointer data);
|
void on_save_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, gpointer data);
|
||||||
void on_discard_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, gpointer data);
|
void on_discard_current_model_before_editing (GtkWidget *btt_SAVE_CURRENT_MODEL, gpointer data);
|
||||||
void on_write_current_model (GtkWidget *btt_WRITE_CURRENT_MODEL, gpointer data);
|
void on_write_current_model (GtkWidget *btt_WRITE_CURRENT_MODEL, gpointer data);
|
||||||
|
|
||||||
|
|
||||||
void on_setup_user_menu_factory (GtkSignalListItemFactory *factory,
|
|
||||||
GObject* object, gpointer user_data);
|
|
||||||
void on_bind_user_menu_factory (GtkSignalListItemFactory *factory,
|
|
||||||
GObject* object, gpointer user_data);
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* T R E E (in tree.c & rules.c) */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
void on_setup_user_tree_factory (GtkSignalListItemFactory *factory,
|
void on_setup_user_tree_factory (GtkSignalListItemFactory *factory,
|
||||||
GObject* object, gpointer user_data);
|
GObject* object, gpointer user_data);
|
||||||
void on_bind_user_tree_factory (GtkSignalListItemFactory *factory,
|
void on_bind_user_tree_factory (GtkSignalListItemFactory *factory,
|
||||||
GObject* object, gpointer user_data);
|
GObject* object, gpointer user_data);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* G L A R E A (see graphics) */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
gboolean on_glarea_render (GtkGLArea *area, GdkGLContext *context);
|
gboolean on_glarea_render (GtkGLArea *area, GdkGLContext *context);
|
||||||
void on_glarea_realize (GtkWidget *widget);
|
void on_glarea_realize (GtkWidget *widget);
|
||||||
void on_glarea_unrealize (GtkWidget *widget);
|
void on_glarea_unrealize (GtkWidget *widget);
|
||||||
|
|
||||||
void on_axis_value_change (GtkAdjustment *adjustment, gpointer data);
|
void on_axis_value_change (GtkAdjustment *adjustment, gpointer data);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* M A I N W I N D O W T O P B A R */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
void on_clicked_home (GtkWidget *btt_reset, gpointer data);
|
||||||
|
void on_clicked_search (GtkWidget *btt_menu, gpointer list_box);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* M A I N W I N D O W S T A T E P A G E (upper part) */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
void on_objects_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar);
|
void on_objects_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar);
|
||||||
void on_situations_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar);
|
void on_situations_box_do_reset (GtkWidget *btt_reset, GtkScrollbar *reset_scrollbar);
|
||||||
|
|
||||||
void on_clicked_home (GtkWidget *btt_reset, gpointer data);
|
|
||||||
//void on_clicked_MENU_list_box (GtkWidget *btt_reset, gpointer data);
|
|
||||||
//void on_clicked_MENU_pop (GtkWidget *btt_reset, gpointer data);
|
|
||||||
void on_clicked_search (GtkWidget *btt_menu, gpointer list_box);
|
|
||||||
void on_clicked_menu_experiment (GtkWidget *btt_menu, gpointer list_box);
|
|
||||||
|
|
||||||
// void on_auto_notification (const char *message);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* *
|
* *
|
||||||
* Gem-graph client *
|
* Gem-graph client *
|
||||||
* *
|
* *
|
||||||
* Widgets header *
|
* Widgets header *
|
||||||
* *
|
* *
|
||||||
* Copyright © 2021 Libre en Communs <contact@a-lec.org> *
|
* Copyright © 2021 Libre en Communs <contact@a-lec.org> *
|
||||||
* Copyright © 2021 Adrien Bourmault <neox@a-lec.org> *
|
* Copyright © 2021 Adrien Bourmault <neox@a-lec.org> *
|
||||||
|
@ -35,11 +35,9 @@
|
||||||
#define n_situations 128
|
#define n_situations 128
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* W I N D O W S */
|
/* W I N D O W S (see "init.c") */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
void widget_create_windows (GtkApplication *app);
|
|
||||||
|
|
||||||
void widget_design_main_window (GtkWindow *main_window);
|
void widget_design_main_window (GtkWindow *main_window);
|
||||||
void widget_design_dialog_window (GtkWindow *main_window, GtkWindow *dialog_window);
|
void widget_design_dialog_window (GtkWindow *main_window, GtkWindow *dialog_window);
|
||||||
void widget_design_text_window (GtkWindow *main_window, GtkWindow *text_window);
|
void widget_design_text_window (GtkWindow *main_window, GtkWindow *text_window);
|
||||||
|
@ -63,14 +61,6 @@ void widget_reset_all_situations_transparencies_to_value (int value);
|
||||||
void *widget_get_stock_text (gchar *text_name);
|
void *widget_get_stock_text (gchar *text_name);
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
/* M E N U */
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
//struct MenuNode_t {gchar *text; struct MenuNode_t *child, *next;};
|
|
||||||
//struct MenuNode_t *widget_create_user_menu_node (const gchar* text);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* T R E E */
|
/* T R E E */
|
||||||
|
@ -81,7 +71,7 @@ struct TreeNode_t *widget_create_user_tree_node (const gchar* text);
|
||||||
|
|
||||||
void widget_add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child);
|
void widget_add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child);
|
||||||
|
|
||||||
void *widget_get_user_rules_tree ();
|
void *widget_get_user_rules_tree (); // see "labo.c" for specification of the tree
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
@ -114,3 +104,8 @@ char *widget_get_text_address_any ();
|
||||||
|
|
||||||
void widget_let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root);
|
void widget_let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root);
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* M E N U */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
|
126
src/signal.c
126
src/signal.c
|
@ -329,133 +329,7 @@ void on_clicked_home (GtkWidget *btt_reset, gpointer data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* M E N U */
|
/* M E N U */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
void on_clicked_menu_experiment (GtkWidget *btt_menu, gpointer list_box) {
|
|
||||||
printf ("signal.on_clicked_MENU() button > %p < &list_box > children nb > 3\n", list_box);
|
|
||||||
|
|
||||||
// gpointer list_box = gtk_popover_get_child (GTK_POPOVER (pop));
|
|
||||||
|
|
||||||
/*
|
|
||||||
if (gtk_list_box_get_row_at_index (list_box, 3))
|
|
||||||
printf ("signal.on_clicked_MENU() button > %p < &list_box > children nb > 3\n", list_box);
|
|
||||||
else printf ("signal.on_clicked_MENU() button > in list_box are the three buttons : %s, %s, %s\n\
|
|
||||||
and now : how to display these three buttons (and make use of them) ? 2024-07-13 (20h)\n",\
|
|
||||||
gtk_button_get_label (GTK_BUTTON (gtk_list_box_row_get_child (gtk_list_box_get_row_at_index (list_box, 0)))),
|
|
||||||
gtk_button_get_label (GTK_BUTTON (gtk_list_box_row_get_child (gtk_list_box_get_row_at_index (list_box, 1)))),
|
|
||||||
gtk_button_get_label (GTK_BUTTON (gtk_list_box_row_get_child (gtk_list_box_get_row_at_index (list_box, 2)))));
|
|
||||||
|
|
||||||
// learning_how_to_create_a_menu (menu_button);
|
|
||||||
// https://docs.gtk.org/gtk4/class.ListBox.html
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************/
|
|
||||||
/* M E N U (from TREE) */
|
|
||||||
/******************************************************************************/
|
|
||||||
|
|
||||||
static void on_user_menu_expander_toggled (GtkExpander *expander,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
GtkTreeListRow *row = GTK_TREE_LIST_ROW (user_data);
|
|
||||||
gboolean is_expanded = gtk_tree_list_row_get_expanded (row);
|
|
||||||
gtk_tree_list_row_set_expanded (row, ! is_expanded);
|
|
||||||
const gchar *text = gtk_string_object_get_string (
|
|
||||||
GTK_STRING_OBJECT (gtk_tree_list_row_get_item (row)));
|
|
||||||
if (1) printf("[on_user_menu_expander_toggled] > %s\n", text);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void on_bind_user_menu_factory (GtkSignalListItemFactory *factory,
|
|
||||||
GObject* object,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
GtkListItem *list_item = GTK_LIST_ITEM (object);
|
|
||||||
assert (list_item);
|
|
||||||
|
|
||||||
GtkTreeListRow *row = gtk_list_item_get_item (list_item);
|
|
||||||
assert (row); // if (row != NULL) {...} do something ? TODO Check !
|
|
||||||
|
|
||||||
const gchar *text = gtk_string_object_get_string (
|
|
||||||
GTK_STRING_OBJECT (gtk_tree_list_row_get_item (row)));
|
|
||||||
GtkWidget *expander = gtk_list_item_get_child (list_item);
|
|
||||||
gtk_expander_set_label (GTK_EXPANDER (expander), text);
|
|
||||||
g_signal_handlers_disconnect_by_func (expander,
|
|
||||||
G_CALLBACK (on_user_menu_expander_toggled),
|
|
||||||
row);
|
|
||||||
g_signal_connect (expander,
|
|
||||||
"activate",
|
|
||||||
G_CALLBACK (on_user_menu_expander_toggled),
|
|
||||||
row);
|
|
||||||
gtk_widget_set_margin_start (expander,
|
|
||||||
gtk_tree_list_row_get_depth(row) * 20);
|
|
||||||
}
|
|
||||||
|
|
||||||
void on_setup_user_menu_factory (GtkSignalListItemFactory *factory,
|
|
||||||
GObject* object, gpointer user_data){
|
|
||||||
GtkWidget* expander = gtk_expander_new (NULL);
|
|
||||||
gtk_list_item_set_child (GTK_LIST_ITEM (object), expander);
|
|
||||||
if (0) printf("[on_setup_user_menu_factory] here is an expander\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -224,7 +224,6 @@ static void window_header_bar_right (GtkWidget *header_bar)
|
||||||
|
|
||||||
GSimpleAction *act_connect = g_simple_action_new("connect", NULL);
|
GSimpleAction *act_connect = g_simple_action_new("connect", NULL);
|
||||||
g_signal_connect(act_connect, "activate", G_CALLBACK(connect), NULL);
|
g_signal_connect(act_connect, "activate", G_CALLBACK(connect), NULL);
|
||||||
g_signal_connect (open_menu, "activate", G_CALLBACK (on_clicked_menu_experiment), list_box);
|
|
||||||
|
|
||||||
|
|
||||||
// gtk_menu_button_popup (open_menu); gtk_menu_button_popdown (open_menu);
|
// gtk_menu_button_popup (open_menu); gtk_menu_button_popdown (open_menu);
|
||||||
|
|
Loading…
Reference in New Issue