.TH "include/widget.h" 3 "Version 0.1.0" "Gem-graph" \" -*- nroff -*- .ad l .nh .SH NAME include/widget.h \- widgets hierarchy header .SH SYNOPSIS .br .PP \fC#include \fP .br .SS "Classes" .in +1c .ti -1c .RI "struct \fBTreeNode_t\fP" .br .RI "phantom documentation used to test the functioning of doxygen " .in -1c .SS "Macros" .in +1c .ti -1c .RI "#define \fBW_MY_SCREEN\fP 1920" .br .RI "1920 x 960 = ad hoc (pour mon écran)) " .ti -1c .RI "#define \fBH_MY_SCREEN\fP 1000" .br .RI "Full HD (1920 x 1080 pixels) " .ti -1c .RI "#define \fBW_TEXT_WINDOW\fP 550" .br .RI "ad hoc (mais sans conséquences ici) " .ti -1c .RI "#define \fBH_TEXT_WINDOW\fP \fBH_MY_SCREEN\fP" .br .RI "== " .ti -1c .RI "#define \fBW_TREE\fP 160" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_DO_UNDO_REDO_BOX\fP 1300" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_XYZ_BOX\fP 62" .br .RI "arbitrary " .ti -1c .RI "#define \fBH_XYZ_BOX\fP 200" .br .RI "arbitrary " .ti -1c .RI "#define \fBH_E_COLI\fP 760" .br .RI "arbitrary " .ti -1c .RI "#define \fBH_OBJECTS_SITUATIONS\fP 130" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_COMPARATOR\fP 64" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_RULES_USE\fP 90" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_IMAGE_800\fP 800" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_IMAGE_100\fP 100" .br .RI "arbitrary " .ti -1c .RI "#define \fBALL_VS_SELECTED\fP 340" .br .RI "arbitrary " .ti -1c .RI "#define \fBH_PARTITION_SYNTH\fP 1600" .br .RI "arbitrary " .ti -1c .RI "#define \fBW_PARTITION_SYNTH\fP 400" .br .RI "arbitrary " .ti -1c .RI "#define \fBPARTITION_STATE_TOP\fP 600" .br .RI "arbitrary " .ti -1c .RI "#define \fBPARTITION_SPACE_VS_CONTROLS_1\fP 920" .br .RI "arbitrary " .ti -1c .RI "#define \fBPARTITION_SPACE_VS_CONTROLS_2\fP 800" .br .RI "arbitrary " .ti -1c .RI "#define \fBPARTITION_SPACE_VS_CAMERA_IN_STATE\fP 1850" .br .RI "arbitrary " .ti -1c .RI "#define \fBPARTITION_SPACE_VS_CAMERA_IN_SYNTH\fP 1560" .br .RI "arbitrary " .ti -1c .RI "#define \fBLIST_W\fP 190" .br .RI "arbitrary " .ti -1c .RI "#define \fBLIST_H\fP 114" .br .RI "arbitrary " .ti -1c .RI "#define \fBH_PARTITION_RESULTS\fP 140" .br .RI "arbitrary " .in -1c .SS "Functions" .in +1c .ti -1c .RI "GtkWindow * \fBwidget_get_main_window\fP ()" .br .RI "getter " .ti -1c .RI "GtkWindow * \fBwidget_get_dialog_window\fP ()" .br .RI "getter " .ti -1c .RI "GtkWindow * \fBwidget_get_text_window\fP ()" .br .RI "getter " .ti -1c .RI "void \fBwidget_design_main_window\fP (GtkWindow *main_window, GtkApplication *app)" .br .ti -1c .RI "void \fBwidget_design_dialog_window\fP (GtkWindow *main_window, GtkWindow *dialog_window)" .br .RI "modal " .ti -1c .RI "void \fBwidget_design_text_window\fP (GtkWindow *main_window, GtkWindow *text_window)" .br .RI "modal " .ti -1c .RI "const char * \fBwidget_get_btt_label_synth\fP ()" .br .RI "! WARNING ! THE LABELS OF THE PREVIOUS FOUR BUTTONS MUST ONLY BE DEFINED ONCE IN THE PROGRAMME (HERE), AND ONLY USING THE FOUR FOLLOWING FUNCTIONS: " .ti -1c .RI "const char * \fBwidget_get_btt_label_state\fP ()" .br .RI "btt_state " .ti -1c .RI "const char * \fBwidget_get_btt_label_rules\fP ()" .br .RI "btt_rules " .ti -1c .RI "const char * \fBwidget_get_btt_label_data\fP ()" .br .RI "btt_data .br " .ti -1c .RI "void \fBwindow_design_topbar_center\fP (GtkWidget *topbar)" .br .RI "title " .ti -1c .RI "void \fBwindow_design_topbar_left\fP (GtkWidget *header_bar)" .br .RI "The rules page consists of two half-pages in a GtkPaned widget : " .ti -1c .RI "void \fBwindow_design_topbar_right\fP (GtkWidget *header_bar, GtkApplication *app)" .br .ti -1c .RI "GtkWidget * \fBwidget_get_topbar\fP (GtkApplication *app)" .br .ti -1c .RI "void * \fBwidget_get_page_synth\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_page_state\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_page_data\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_page_measure\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_time_dependent\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_space_vs_non_time_dependent\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_non_time_dependent\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_space_view\fP (int partition_space_vs_camera)" .br .ti -1c .RI "void * \fBwidget_get_graph_view_control\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_space_edit_control\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_sequence_control\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void \fBwidget_set_situations_value\fP (int value)" .br .ti -1c .RI "void \fBwidget_set_objects_value\fP (int rank, int value)" .br .ti -1c .RI "int \fBwidget_get_object_transparency\fP (int i)" .br .ti -1c .RI "void \fBwidget_reset_XYZ_in_state_pane\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_pane_all_rules_left\fP ()" .br .RI "phantom documentation " .ti -1c .RI "void * \fBwidget_get_pane_selected_rule_right\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_rules_pilot_box\fP ()" .br .RI "phantom documentation " .ti -1c .RI "void * \fBwidget_get_rules_tree_tools\fP ()" .br .RI "phantom documentation " .ti -1c .RI "void * \fBwidget_get_rules_use\fP ()" .br .RI "phantom documentation " .ti -1c .RI "void * \fBwidget_get_selected_rule\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_rule_edition_tools\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_rule_investigation_tools\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_algebra\fP ()" .br .RI "Provides the three lists needed to describe a rule algebraically\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_geometry\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_conditions_list_btt\fP ()" .br .RI "Builds and presents the conditions list of a rule\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_assignations_list_btt\fP ()" .br .RI "Presents the list of all the elementary actions (assignments) performed when the rule is applied\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_identity_btt\fP ()" .br .RI "Hosts a list of character strings that can be combined to provide a 'human readable' rule identifier\&. " .ti -1c .RI "GtkEntry \fBwidget_set_item_text\fP (GtkWidget *list_box, const char *text, bool editable)" .br .RI "Format an entry (a text item) in a list\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_camera\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_selected_rule_before_after\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_results_box_organize\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_results_box_display\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_get_results_box_time\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "struct \fBTreeNode_t\fP * \fBwidget_create_user_rules_tree_node\fP (const gchar *text)" .br .ti -1c .RI "void \fBwidget_add_tree_child_node\fP (struct \fBTreeNode_t\fP *parent, struct \fBTreeNode_t\fP *child)" .br .ti -1c .RI "void * \fBwidget_get_user_rules_tree\fP ()" .br .ti -1c .RI "void * \fBwidget_get_text_from_address\fP (gchar *text_name)" .br .RI "getter " .ti -1c .RI "char * \fBwidget_get_address_text_theory\fP ()" .br .ti -1c .RI "char * \fBwidget_get_address_text_practice\fP ()" .br .ti -1c .RI "char * \fBwidget_get_address_text_alpha_index\fP ()" .br .ti -1c .RI "void * \fBwidget_get_an_impression_of_what_a_rules_comparator_could_be\fP ()" .br .RI "phantom documentation " .ti -1c .RI "void \fBwidget_let_us_create_a_complex_useless_and_expensive_tree\fP (struct \fBTreeNode_t\fP *tree_root)" .br .RI "phantom documentation " .ti -1c .RI "void * \fBwidget_measure_new\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_select_rules_first\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_depends_on_one_or_two_events\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_depends_on_a_single_event\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_depends_on_two_events\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_select_a_second_rules_set\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_choose_an_event_type\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_correlate\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_insert_in_measurements_list\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_do_end_creation_of_measurement_process\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_event_occurences_nb\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_event_occurences_dates\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_event_occurences_situations\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_time_elapsed_between_two_events\fP ()" .br .RI "Phantom documentation\&. " .ti -1c .RI "void * \fBwidget_measure_third_event_occurences_in_between\fP ()" .br .RI "Phantom documentation\&. " .in -1c .SH "Detailed Description" .PP widgets hierarchy header This file is part of Gem-graph\&. .SH "Function Documentation" .PP .SS "void widget_add_tree_child_node (struct \fBTreeNode_t\fP * parent, struct \fBTreeNode_t\fP * child)" .PP \fBParameters\fP .RS 4 \fI*parent\fP .br \fI*child\fP .RE .PP .SS "struct \fBTreeNode_t\fP * widget_create_user_rules_tree_node (const gchar * text)" .PP \fBParameters\fP .RS 4 \fI*text\fP .RE .PP \fBReturns\fP .RS 4 \fBTreeNode_t\fP .RE .PP .SS "void widget_design_dialog_window (GtkWindow * main_window, GtkWindow * dialog_window)" .PP modal .PP \fBSee also\fP .RS 4 src/fsm/dispatch/fsm_journal_event() .PP src/widget/manager/on_windows_activation() .RE .PP \fBParameters\fP .RS 4 \fI*main_window\fP .br \fI*dialog_window\fP .RE .PP .SS "void widget_design_main_window (GtkWindow * main_window, GtkApplication * app)" .PP \fBParameters\fP .RS 4 \fI*main_window\fP .br \fI*app\fP .RE .PP .SS "void widget_design_text_window (GtkWindow * main_window, GtkWindow * text_window)" .PP modal .PP \fBSee also\fP .RS 4 src/widget/modal/widget_get_text_from_address() .PP src/widget/manager/on_windows_activation() .RE .PP \fBParameters\fP .RS 4 \fI*main_window\fP .br \fI*text_window\fP .RE .PP .SS "char * widget_get_address_text_alpha_index ()" .PP \fBReturns\fP .RS 4 '\&./alphabetic_index\&.all' .RE .PP .SS "char * widget_get_address_text_practice ()" .PP \fBReturns\fP .RS 4 '\&./data/text/pratique\&.txt' .RE .PP .SS "char * widget_get_address_text_theory ()" .PP \fBReturns\fP .RS 4 '\&./data/text/théorie\&.txt' .RE .PP .SS "const char * widget_get_btt_label_synth ()" .PP ! WARNING ! THE LABELS OF THE PREVIOUS FOUR BUTTONS MUST ONLY BE DEFINED ONCE IN THE PROGRAMME (HERE), AND ONLY USING THE FOUR FOLLOWING FUNCTIONS: btt_synth .SS "GtkWindow * widget_get_dialog_window ()" .PP getter .PP \fBSince\fP .RS 4 2024-07 .RE .PP \fBSee also\fP .RS 4 src/signal .RE .PP \fBReturns\fP .RS 4 dialog_window .RE .PP .SS "GtkWindow * widget_get_main_window ()" .PP getter .PP \fBSince\fP .RS 4 2024-07 .RE .PP \fBSee also\fP .RS 4 src/signal .RE .PP \fBReturns\fP .RS 4 main_window .RE .PP .SS "int widget_get_object_transparency (int rank)" .PP \fBParameters\fP .RS 4 \fIrank\fP .RE .PP \fBReturns\fP .RS 4 value .RE .PP .SS "void * widget_get_selected_rule_algebra ()" .PP Provides the three lists needed to describe a rule algebraically\&. The algebraic definition of a rule comprises three types of character strings organised into three lists: .IP "\(bu" 2 conditions .IP "\(bu" 2 assignations .IP "\(bu" 2 name (a set of identity elements) .PP .PP \fBSince\fP .RS 4 2024-08 .RE .PP \fBSee also\fP .RS 4 src/widget/one_rule/algebra/conditions() .PP src/widget/one_rule/algebra/assignations() .PP src/widget/one_rule/algebra/identity() .PP src/widget/one_rule/dispatch() .RE .PP .SS "void * widget_get_selected_rule_assignations_list_btt ()" .PP Presents the list of all the elementary actions (assignments) performed when the rule is applied\&. Today, an arbitrary presentation with no link to the XML model and no verification of compliance with the meta-rules\&. (see below) TODO .PP |- - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - - > .PP This list groups all the elementary assignments of the rule\&. No assignment should be repeated or modified by other assignments\&. (== a unique assignment per address in rule workspace) Completeness is not required\&. (== there does not need to be one assignment per address in the rule workspace) .PP < - - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - -| .PP \fBSince\fP .RS 4 2024-08 .RE .PP \fBSee also\fP .RS 4 src/widget/one_rule/algebra/utilities/widget_set_item_text() .PP src/fsm/dispatch/fsm_journal_event() < TODO (for each item ?) .PP src/widget/one_rule/algebra/dispatch() .RE .PP \fBReturns\fP .RS 4 the assignations list .RE .PP .SS "void * widget_get_selected_rule_conditions_list_btt ()" .PP Builds and presents the conditions list of a rule\&. This list sets out all the conditions that the rule must meet in order to be applied\&. .PP Today, an arbitrary presentation with no link to the XML model and no verification of compliance with the meta-rules\&. (see below) TODO .PP |- - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - - > .PP No conditions should be repeated\&. No condition may contradict another (== a unique condition per address in rule workspace) Completeness is not required (== there does not need to be one condition per address in the rule workspace) .PP (NB The following applies to server workers) Two rules cannot share the same set of conditions\&. If several rules apply to the same set of local conditions - which can happen if several different actions are possible from the same situation - they must each include an additional condition determining their probability of execution in the event of a conflict\&. If two rules share the same local set of conditions, they must both be evaluated\&. If all the conditions of one rule are included in the conditions of another rule, then the other rule must be evaluated first\&. .PP < - - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - -| .PP \fBSince\fP .RS 4 2024-08 .RE .PP \fBSee also\fP .RS 4 src/widget/one_rule/algebra/utilities/widget_set_item_text() .PP src/fsm/dispatch/fsm_journal_event() < TODO (for each item ?) .PP src/widget/one_rule/algebra/dispatch() .RE .PP \fBReturns\fP .RS 4 the conditions list .RE .PP .SS "void * widget_get_selected_rule_identity_btt ()" .PP Hosts a list of character strings that can be combined to provide a 'human readable' rule identifier\&. This list can also contain non-mandatory elements\&. .PP Each rule can have a specific 'human readable' name chosen by its designer\&. This name can be used to identify the rule\&. It is desirable for a unique name to be accepted and shared by as many users as possible\&. .PP On the contrary, for the automaton, the identity of each rule is given exclusively by its set of conditions\&. .PP Today, this function provides only an arbitrary presentation with no link to the XML model and no verification of compliance with the meta-rules\&. (see below) TODO .PP |- - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - - > .PP No item of the list should be repeated\&. No element describing the function of the rule can contradict another\&. All the elements required for identification by name must be present\&. Uniqueness is required (This name must be usable as a key)\&. Non-mandatory elements can be added (comments, etc\&.)\&. .PP < - - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - -| .PP \fBSince\fP .RS 4 2024-08 .RE .PP \fBSee also\fP .RS 4 src/widget/one_rule/algebra/utilities/widget_set_item_text() .PP src/fsm/dispatch/fsm_journal_event() < TODO (for each item ?) .PP src/widget/one_rule/algebra/dispatch/gtk_box_append() .RE .PP \fBReturns\fP .RS 4 rule identity .RE .PP .SS "void * widget_get_space_view (int partition_space_vs_camera)" .PP \fBParameters\fP .RS 4 \fIpartition_space_vs_camera\fP .RE .PP .SS "void * widget_get_text_from_address (gchar * text_address)" .PP getter .PP \fBSee also\fP .RS 4 src/widget/modal/widget_design_text_window() .RE .PP \fBParameters\fP .RS 4 \fI*text_address\fP .RE .PP .SS "GtkWindow * widget_get_text_window ()" .PP getter .PP \fBSince\fP .RS 4 2024-07 .RE .PP \fBSee also\fP .RS 4 src/signal .RE .PP \fBReturns\fP .RS 4 text_window .RE .PP .SS "GtkWidget * widget_get_topbar (GtkApplication * app)" .PP \fBParameters\fP .RS 4 \fI*app\fP .RE .PP \fBReturns\fP .RS 4 topbar .RE .PP .SS "void * widget_get_user_rules_tree ()" .PP \fBReturns\fP .RS 4 scrolled_window .RE .PP .SS "GtkEntry widget_set_item_text (GtkWidget * list_box, const char * text, bool editable)" .PP Format an entry (a text item) in a list\&. .PP \fBSince\fP .RS 4 2024-08 .RE .PP \fBSee also\fP .RS 4 src/widget/one_rule/algebra/conditions() .PP src/widget/one_rule/algebra/assign() .PP src/widget/one_rule/algebra/identity() .RE .PP \fBParameters\fP .RS 4 \fI*list_box\fP .br \fI*text\fP .br \fIeditable\fP .RE .PP \fBReturns\fP .RS 4 *entry < a text item .RE .PP .SS "void widget_set_objects_value (int rank, int value)" .PP \fBParameters\fP .RS 4 \fIrank\fP .br \fIvalue\fP .RE .PP .SS "void widget_set_situations_value (int value)" .PP \fBParameters\fP .RS 4 \fIvalue\fP .RE .PP .SS "void window_design_topbar_left (GtkWidget * header_bar)" .PP The rules page consists of two half-pages in a GtkPaned widget : .IP "\(bu" 2 on the left, widgets for controlling or editing all the rules\&. .IP "\(bu" 2 on the right, widgets for controlling or editing the selected rule\&. .PP .PP As this division is clear and constant, it is simpler to place these two half-pages at the same hierarchical level as the other full pages like 'synth', 'state' or 'results'\&. .PP So there is no: 'widget_get_rules_page()' function\&. Instead, the distribution: 'all rules' versus 'the selected one' is moved to the file: 'signal'\&. .PP It is in the function: static void switch_state_rules_data() { switch (\fBfsm_get_state_rules_data()\fP) { \&.\&.\&. case (RULES) : GtkPaned *widget_all_vs_selected_one = \&.\&.\&. break; \&.\&.\&. } .PP \fBParameters\fP .RS 4 \fI*header_bar\fP .RE .PP .SS "void window_design_topbar_right (GtkWidget * header_bar, GtkApplication * app)" .PP \fBParameters\fP .RS 4 \fI*header_bar\fP .br \fI*app\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for Gem-graph from the source code\&.