From 73648be58ed6955e8402058fbe1c7266fec83a40 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Tue, 9 Jul 2024 10:45:26 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9compte=20des=20fonctions=20appel=C3=A9es?= =?UTF-8?q?=20(n=20=3D=2086)=20et=20appelantes=20en=20cours?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.c | 130 ++++++++++++++++++++++++++++++++----------- src/widget.c/state.c | 4 +- 2 files changed, 99 insertions(+), 35 deletions(-) diff --git a/src/main.c b/src/main.c index 2d680fe..c1629c7 100644 --- a/src/main.c +++ b/src/main.c @@ -32,11 +32,13 @@ #include "../include/callbacks.h" -/* La question < Comment renommer les fonctions ? > - * dépend d'au moins deux questions et d'au moins deux règles : +/* Comment renommer les fonctions ? + * Cette question dépend de plusieurs choix + * nécessairement provisoires mais nécessaires. * * - * > Quel modèle pour l'organisation du client gem-graph ? + * > Sur quel modèle se guider pour organiser le client gem-graph ? + * Comment l'adapter ? Que faut-il garder ? Que faut-il améliorer ? * https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel * https://en.wikipedia.org/wiki/Multitier_architecture * @@ -46,38 +48,48 @@ * (et comment classer et nommer les autres) ? * * - * > Ici, les noms doivent être "human-readable" ET "machine-readable. + * > Comment rendre "human-readable" des noms d'un langage "machine-readable" ? * - * > Toute fonction utilisée par un autre module doit + * _________________ + * + * >>> Nous avons à nous choisir des règles de renommage des fonctions + * qui soient conformes aux 'bonnes pratiques' du 'génie logiciel' + * ET soient les plus pertinentes possibles pour notre cas particulier. + * (en cours, 2024-07-09 10h40) + * + * + * >>> Proposition : Toute fonction utilisée par un autre module doit * - commencer D'ABORD par le nom de ce module, * - indiquer ENSUITE sa nature (get, set, print,...) - * - et ENFIN son objet (STATE, RULES,...) + * - et ENFIN son objet (STATE, RULES, STACK,...) * * ex: widget_get_RULES_page() * automat_set_STATE_RULES_DATA() - * on_save_CURRENT_MODEL_before_editing() + * on_save_CURRENT_MODEL() * model_get_DIM_VALUE() * model_get_NEXT_ARROW() + * area_get_GRAPH_STACK() ou graph_get_GRAPH_STACK() * - * 'on_' == callback ('on_' est un alias de 'callbacks') * 'model' == parse ('model' est un alias de 'parse') + * 'graph' == area ('graph' est un alias de 'area') + * 'on_' == callback ('on_' est un alias de 'callbacks') + * Ainsi, TOUS les callbacks sont dans le fichier 'src/callbacks.c' + * Leur nom commence TOUJOURS par: 'on_' + * ET AUCUN AUTRE nom de fonction ne commence par 'on_'. * * * > selon ces règles, get_user_tree_model() * devrait être renommé : tree_get_USER_TREE_MODEL() * * > si, comme c'est prévisible, 'state.c' devient un dossier contenant : - * les fichiers 'controls.c', 'camera.c', 'contrasts.c' et d'autres + * les fichiers 'controls.c', 'camera.c', 'contrasts.c' et d'autres, * alors, get_ZOOM_box() * devrait être renommé : state_camera_get_ZOOM_box() * + * _________________ * - * >>> nous devons nous choisir des règles de renommage des fonctions qui - * soient conformes aux 'bonnes pratiques' du 'génie logiciel' - * ET soient les plus pertinentes possibles pour notre cas particulier. - * - * (2024-07-09 5h00) * + * QUELLE EST L'ORGANISATION ACTUELLE ? * * 1) Les structures hiérarchiques. * -------------------------------- @@ -171,32 +183,73 @@ * >> des 'scripts' pour des 'méta-fonctions' (des 'macros') ? * * - * Comment optimiser ? - * ------------------- * - * Modularité <> définir les interfaces entre modules tôt et précisément - * Commenter <> faire tester (pas trop tôt, pas trop tard) - * Tester <> tests graphiques, unaires, profiling... - */ - - - -/* L I S T E D E S F I C H I E R S A R E N O M M E R */ -/* (en cours, 2024-07-09 5h00) */ - -/* Tous les callbacks sont dans le fichier 'src/callbacks.c' - * et leur nom commence par: 'on_' - * (aucun autre nom de fonction ne commence par 'on_'). - + * + * + * + * + * + * + * + * + ******************************************************************************* + * L I S T E D E S F O N C T I O N S A R E N O M M E R * + * ***************************************************************************** + * + * Ces fonctions peuvent être énumérées selon leur source ou leur destination. + * Il y a, en tout, à ce jour : + * - (86) fonctions appelées (dont 6 data) + * - (m) fonctions appelantes + * - (e) enum + * - (s) struct + * - (d) define + * + * NB Seules les fonctions spécifiques de gem-graph-client sont prises en compte. + * Les fonctions 'static' ne sont pas comptées. + * + * + * + ******************************************************************************* + * L I S T E D E S F O N C T I O N S A P P E L É E S * + * ***************************************************************************** + * (en cours, 2024-07-09 10h40) + * + * main 1 + * callbacks 18 + * automat 8 + 2 enum + * parse 8 + * 35 + * + * graph / area 11 + 1 struct + 1 size_t + * graph / stack 3 + 1 struct + 2 size_t + 1 int + * graph / draw 5 + * graph / grid 4 + * graph / init 2 + * graph / shader.frag 1 + * graph / shader.vert 1 + * 27 + * + * widget / heads 10 + * widget / rules 1 + * widget / state 1 + * widget / stock 2 + * widget / tree 2 + 1 struct + * widget / labo 1 + * 17 + * + * data / image 5 + * data / text 2 + * + * TOTAL 86 + * * Tous les fonctions appelées par les fonctions callback() sont dans 'widgets.h' - * SAUF celles qui concernent la 'state machine' qui sont dans 'base.h': + * SAUF celles qui concernent la 'state machine', dans 'automat.h', qui sont : * set_EXEC_EDIT() get_EXEC_EDIT() * set_STATE_RULES_DATA() get_STATE_RULES_DATA() * set_OBJECTS_box_RESET_VALUE() get_OBJECTS_box_RESET_VALUE() * set_SITUATIONS_box_RESET_VALUE() get_SITUATIONS_box_RESET_VALUE() * - * (Ces fonctions iront dans un fichier 'automat.h') * * Les autres fonctions appelées par les fonctions callback() sont : * @@ -211,10 +264,21 @@ * on_axis_value_change() * graph_update_axis_stack() * + *..... * * * - * (en cours - 2024-07-09 5h00) + * + ******************************************************************************* + * L I S T E D E S F O N C T I O N S A P P E L A N T E S * + * ***************************************************************************** + * (en cours, 2024-07-09 10h40) + * + * + * + * + * + * (déplacer systématiquement les enum, struct, size_t, etc. vers les include ?) */ diff --git a/src/widget.c/state.c b/src/widget.c/state.c index d783048..39c74f2 100644 --- a/src/widget.c/state.c +++ b/src/widget.c/state.c @@ -47,7 +47,7 @@ * - CONTRAST en haut permet de modifier un à un les contrastes des objets et des situations * afin de mieux mettre en évidence l'objet ou le phénomène d'intérêt */ -GtkBox *get_XYZ_box() +static GtkBox *get_XYZ_box() { GtkBox *XYZ_labels_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 2)); // spacing = 2 GtkBox *XYZ_scrollbar_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); @@ -186,7 +186,7 @@ static GtkWidget *get_OBJECTS_and_SITUATIONS() return objects_and_situations_horizontal_pane; } -GtkWidget *get_SPACE_VIEW_box() +static GtkWidget *get_SPACE_VIEW_box() { GtkBox *right_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 2)); gtk_box_append (right_box, GTK_WIDGET (get_XYZ_box()));