Gem-graph 0.1.0
A modelling tool based on rewriting of geometric graphs.
Loading...
Searching...
No Matches
Classes | Macros | Functions
widget.h File Reference

widgets hierarchy header More...

#include <gtk-4.0/gtk/gtk.h>

Classes

struct  TreeNode_t
 phantom documentation used to test the functioning of doxygen More...
 

Macros

#define W_MY_SCREEN   1920
 1920 x 960 = ad hoc (pour mon écran))
 
#define H_MY_SCREEN   1000
 Full HD (1920 x 1080 pixels)
 
#define W_TEXT_WINDOW   550
 ad hoc (mais sans conséquences ici)
 
#define H_TEXT_WINDOW   H_MY_SCREEN
 ==
 
#define W_TREE   160
 arbitrary
 
#define W_DO_UNDO_REDO_BOX   1300
 arbitrary
 
#define W_XYZ_BOX   62
 arbitrary
 
#define H_XYZ_BOX   200
 arbitrary
 
#define H_E_COLI   760
 arbitrary
 
#define H_OBJECTS_SITUATIONS   130
 arbitrary
 
#define W_COMPARATOR   64
 arbitrary
 
#define W_RULES_USE   90
 arbitrary
 
#define W_IMAGE_800   800
 arbitrary
 
#define W_IMAGE_100   100
 arbitrary
 
#define ALL_VS_SELECTED   340
 arbitrary
 
#define H_PARTITION_SYNTH   1600
 arbitrary
 
#define W_PARTITION_SYNTH   400
 arbitrary
 
#define PARTITION_STATE_TOP   600
 arbitrary
 
#define PARTITION_SPACE_VS_CONTROLS_1   920
 arbitrary
 
#define PARTITION_SPACE_VS_CONTROLS_2   800
 arbitrary
 
#define PARTITION_SPACE_VS_CAMERA_IN_STATE   1850
 arbitrary
 
#define PARTITION_SPACE_VS_CAMERA_IN_SYNTH   1560
 arbitrary
 
#define LIST_W   190
 arbitrary
 
#define LIST_H   114
 arbitrary
 
#define H_PARTITION_RESULTS   140
 arbitrary
 

Functions

GtkWindow * widget_get_main_window ()
 getter
 
GtkWindow * widget_get_dialog_window ()
 getter
 
GtkWindow * widget_get_text_window ()
 getter
 
void widget_design_main_window (GtkWindow *main_window, GtkApplication *app)
 
void widget_design_dialog_window (GtkWindow *main_window, GtkWindow *dialog_window)
 modal
 
void widget_design_text_window (GtkWindow *main_window, GtkWindow *text_window)
 modal
 
const char * widget_get_btt_label_synth ()
 ! WARNING ! THE LABELS OF THE PREVIOUS FOUR BUTTONS MUST ONLY BE DEFINED ONCE IN THE PROGRAMME (HERE), AND ONLY USING THE FOUR FOLLOWING FUNCTIONS:
 
const char * widget_get_btt_label_state ()
 btt_state
 
const char * widget_get_btt_label_rules ()
 btt_rules
 
const char * widget_get_btt_label_data ()
 btt_data

 
void window_design_topbar_center (GtkWidget *topbar)
 title
 
void window_design_topbar_left (GtkWidget *header_bar)
 The rules page consists of two half-pages in a GtkPaned widget :
 
void window_design_topbar_right (GtkWidget *header_bar, GtkApplication *app)
 
GtkWidget * widget_get_topbar (GtkApplication *app)
 
void * widget_get_page_synth ()
 Phantom documentation.
 
void * widget_get_page_state ()
 Phantom documentation.
 
void * widget_get_page_data ()
 Phantom documentation.
 
void * widget_get_page_measure ()
 Phantom documentation.
 
void * widget_get_time_dependent ()
 Phantom documentation.
 
void * widget_get_space_vs_non_time_dependent ()
 Phantom documentation.
 
void * widget_get_non_time_dependent ()
 Phantom documentation.
 
void * widget_get_space_view (int partition_space_vs_camera)
 
void * widget_get_graph_view_control ()
 Phantom documentation.
 
void * widget_get_space_edit_control ()
 Phantom documentation.
 
void * widget_get_sequence_control ()
 Phantom documentation.
 
void widget_set_situations_value (int value)
 
void widget_set_objects_value (int rank, int value)
 
int widget_get_object_transparency (int i)
 
void widget_reset_XYZ_in_state_pane ()
 Phantom documentation.
 
void * widget_get_pane_all_rules_left ()
 phantom documentation
 
void * widget_get_pane_selected_rule_right ()
 Phantom documentation.
 
void * widget_get_rules_pilot_box ()
 phantom documentation
 
void * widget_get_rules_tree_tools ()
 phantom documentation
 
void * widget_get_rules_use ()
 phantom documentation
 
void * widget_get_selected_rule ()
 Phantom documentation.
 
void * widget_get_rule_edition_tools ()
 Phantom documentation.
 
void * widget_get_rule_investigation_tools ()
 Phantom documentation.
 
void * widget_get_selected_rule_algebra ()
 Provides the three lists needed to describe a rule algebraically.
 
void * widget_get_selected_rule_geometry ()
 Phantom documentation.
 
void * widget_get_selected_rule_conditions_list_btt ()
 Builds and presents the conditions list of a rule.
 
void * widget_get_selected_rule_assignations_list_btt ()
 Presents the list of all the elementary actions (assignments) performed when the rule is applied.
 
void * widget_get_selected_rule_identity_btt ()
 Hosts a list of character strings that can be combined to provide a "human readable" rule identifier.
 
GtkEntry widget_set_item_text (GtkWidget *list_box, const char *text, bool editable)
 Format an entry (a text item) in a list.
 
void * widget_get_selected_rule_camera ()
 Phantom documentation.
 
void * widget_get_selected_rule_before_after ()
 Phantom documentation.
 
void * widget_get_results_box_organize ()
 Phantom documentation.
 
void * widget_get_results_box_display ()
 Phantom documentation.
 
void * widget_get_results_box_time ()
 Phantom documentation.
 
struct TreeNode_twidget_create_user_rules_tree_node (const gchar *text)
 
void widget_add_tree_child_node (struct TreeNode_t *parent, struct TreeNode_t *child)
 
void * widget_get_user_rules_tree ()
 
void * widget_get_text_from_address (gchar *text_name)
 getter
 
char * widget_get_address_text_theory ()
 
char * widget_get_address_text_practice ()
 
char * widget_get_address_text_alpha_index ()
 
void * widget_get_an_impression_of_what_a_rules_comparator_could_be ()
 phantom documentation
 
void widget_let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root)
 phantom documentation
 
void * widget_measure_new ()
 Phantom documentation.
 
void * widget_measure_do_select_rules_first ()
 Phantom documentation.
 
void * widget_measure_do_depends_on_one_or_two_events ()
 Phantom documentation.
 
void * widget_measure_do_depends_on_a_single_event ()
 Phantom documentation.
 
void * widget_measure_do_depends_on_two_events ()
 Phantom documentation.
 
void * widget_measure_do_select_a_second_rules_set ()
 Phantom documentation.
 
void * widget_measure_do_choose_an_event_type ()
 Phantom documentation.
 
void * widget_measure_do_correlate ()
 Phantom documentation.
 
void * widget_measure_do_insert_in_measurements_list ()
 Phantom documentation.
 
void * widget_measure_do_end_creation_of_measurement_process ()
 Phantom documentation.
 
void * widget_measure_event_occurences_nb ()
 Phantom documentation.
 
void * widget_measure_event_occurences_dates ()
 Phantom documentation.
 
void * widget_measure_event_occurences_situations ()
 Phantom documentation.
 
void * widget_measure_time_elapsed_between_two_events ()
 Phantom documentation.
 
void * widget_measure_third_event_occurences_in_between ()
 Phantom documentation.
 

Detailed Description

widgets hierarchy header

This file is part of Gem-graph.

Function Documentation

◆ widget_add_tree_child_node()

void widget_add_tree_child_node ( struct TreeNode_t parent,
struct TreeNode_t child 
)
Parameters
*parent
*child

◆ widget_create_user_rules_tree_node()

struct TreeNode_t * widget_create_user_rules_tree_node ( const gchar *  text)
Parameters
*text
Returns
TreeNode_t

◆ widget_design_dialog_window()

void widget_design_dialog_window ( GtkWindow *  main_window,
GtkWindow *  dialog_window 
)

modal

See also
src/fsm/dispatch/fsm_journal_event()
src/widget/manager/on_windows_activation()
Parameters
*main_window
*dialog_window

◆ widget_design_main_window()

void widget_design_main_window ( GtkWindow *  main_window,
GtkApplication *  app 
)
Parameters
*main_window
*app

◆ widget_design_text_window()

void widget_design_text_window ( GtkWindow *  main_window,
GtkWindow *  text_window 
)

modal

See also
src/widget/modal/widget_get_text_from_address()
src/widget/manager/on_windows_activation()
Parameters
*main_window
*text_window

◆ widget_get_address_text_alpha_index()

char * widget_get_address_text_alpha_index ( )
Returns
"./alphabetic_index.all"

◆ widget_get_address_text_practice()

char * widget_get_address_text_practice ( )
Returns
"./data/text/pratique.txt"

◆ widget_get_address_text_theory()

char * widget_get_address_text_theory ( )
Returns
"./data/text/théorie.txt"

◆ widget_get_btt_label_synth()

const char * widget_get_btt_label_synth ( )

! 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

◆ widget_get_dialog_window()

GtkWindow * widget_get_dialog_window ( )

getter

Since
2024-07
See also
src/signal
Returns
dialog_window

◆ widget_get_main_window()

GtkWindow * widget_get_main_window ( )

getter

Since
2024-07
See also
src/signal
Returns
main_window

◆ widget_get_object_transparency()

int widget_get_object_transparency ( int  rank)
Parameters
rank
Returns
value

◆ widget_get_selected_rule_algebra()

void * widget_get_selected_rule_algebra ( )

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:

  • conditions
  • assignations
  • name (a set of identity elements)
Since
2024-08
See also
src/widget/one_rule/algebra/conditions()
src/widget/one_rule/algebra/assignations()
src/widget/one_rule/algebra/identity()
src/widget/one_rule/dispatch()

◆ widget_get_selected_rule_assignations_list_btt()

void * widget_get_selected_rule_assignations_list_btt ( )

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

|- - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - - >

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)

< - - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - -|

Since
2024-08
See also
src/widget/one_rule/algebra/utilities/widget_set_item_text()
src/fsm/dispatch/fsm_journal_event() < TODO (for each item ?)
src/widget/one_rule/algebra/dispatch()
Returns
the assignations list

◆ widget_get_selected_rule_conditions_list_btt()

void * widget_get_selected_rule_conditions_list_btt ( )

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.

Today, an arbitrary presentation with no link to the XML model and no verification of compliance with the meta-rules. (see below) TODO

|- - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - - >

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)

(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.

< - - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - -|

Since
2024-08
See also
src/widget/one_rule/algebra/utilities/widget_set_item_text()
src/fsm/dispatch/fsm_journal_event() < TODO (for each item ?)
src/widget/one_rule/algebra/dispatch()
Returns
the conditions list

◆ widget_get_selected_rule_identity_btt()

void * widget_get_selected_rule_identity_btt ( )

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.

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.

On the contrary, for the automaton, the identity of each rule is given exclusively by its set of conditions.

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

|- - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - - >

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.).

< - - - - - - - - - - - - - - meta-rules - - - - - - - - - - - - - - -|

Since
2024-08
See also
src/widget/one_rule/algebra/utilities/widget_set_item_text()
src/fsm/dispatch/fsm_journal_event() < TODO (for each item ?)
src/widget/one_rule/algebra/dispatch/gtk_box_append()
Returns
rule identity

◆ widget_get_space_view()

void * widget_get_space_view ( int  partition_space_vs_camera)
Parameters
partition_space_vs_camera

◆ widget_get_text_from_address()

void * widget_get_text_from_address ( gchar *  text_address)

getter

See also
src/widget/modal/widget_design_text_window()
Parameters
*text_address

◆ widget_get_text_window()

GtkWindow * widget_get_text_window ( )

getter

Since
2024-07
See also
src/signal
Returns
text_window

◆ widget_get_topbar()

GtkWidget * widget_get_topbar ( GtkApplication *  app)
Parameters
*app
Returns
topbar

◆ widget_get_user_rules_tree()

void * widget_get_user_rules_tree ( )
Returns
scrolled_window

◆ widget_set_item_text()

GtkEntry widget_set_item_text ( GtkWidget *  list_box,
const char *  text,
bool  editable 
)

Format an entry (a text item) in a list.

Since
2024-08
See also
src/widget/one_rule/algebra/conditions()
src/widget/one_rule/algebra/assign()
src/widget/one_rule/algebra/identity()
Parameters
*list_box
*text
editable
Returns
*entry < a text item

◆ widget_set_objects_value()

void widget_set_objects_value ( int  rank,
int  value 
)
Parameters
rank
value

◆ widget_set_situations_value()

void widget_set_situations_value ( int  value)
Parameters
value

◆ window_design_topbar_left()

void window_design_topbar_left ( GtkWidget *  header_bar)

The rules page consists of two half-pages in a GtkPaned widget :

  • on the left, widgets for controlling or editing all the rules.
  • on the right, widgets for controlling or editing the selected rule.

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".

So there is no: "widget_get_rules_page()" function. Instead, the distribution: "all rules" versus "the selected one" is moved to the file: "signal".

It is in the function: static void switch_state_rules_data() { switch (fsm_get_state_rules_data()) { ... case (RULES) : GtkPaned *widget_all_vs_selected_one = ... break; ... }

Parameters
*header_bar

◆ window_design_topbar_right()

void window_design_topbar_right ( GtkWidget *  header_bar,
GtkApplication *  app 
)
Parameters
*header_bar
*app