From 852f87fede05c24ba9048e479e60fa35022197e9 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Thu, 30 Nov 2023 13:16:16 +0100 Subject: [PATCH] =?UTF-8?q?WIP:=20commentaires=20main.c=20et=20application?= =?UTF-8?q?.c=20(=C3=A0=20mettre=20en=20forme)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.c | 44 +++++++++++++++++++++++++++++++++++ src/ui/application.c | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) diff --git a/src/main.c b/src/main.c index c14cf64..81af8a7 100644 --- a/src/main.c +++ b/src/main.c @@ -42,5 +42,49 @@ int main(int argc, char **argv) return res; } +/* + * Comment gem_graph_client crée-t-il son application et sa fenêtre ? + * + * gem_graph_client_application_new() est une fonction primitive de gtk.h + * qui permet de donner au gestionnaire de bureau, Gnome, les informations + * nécessaires et suffisantes pour initialiser une nouvelle application. + * + * Ces informations sont : + * - le nom de l'application (son identité) et + * - des flags initialiséà leurs valeurs par défaut + * + * gem_graph_client_application_new() est réécrite à la fin de application.c + * + * Une fois l'espace mémoire nécessaire réservé, + * la nouvelle application peut démarrer + * et c'est une autre primitive de gtk.h : g_application_run() + * qui donne à Gnome l'ordre de lancer le thread + * qui exécutera cette application. + * + * Une fois l'application lancée, main() n'a plus rien à faire. + * La suite va se dérouler d'abord dans application.c puis dans window.c + */ +/* + * How does gem_graph_client create its application and window? + * + * gem_graph_client_application_new() is a primitive function of gtk.h + * which provides the desktop manager, Gnome, with the information + * necessary and sufficient information to initialize a new application. + * + * This information is : + * - the application name (its identity) and + * - some flags set to their default values + * + * gem_graph_client_application_new() is rewritten at the end of application.c + * + * Once the necessary memory space has been reserved, + * the new application can start + * and this is another gtk.h primitive: g_application_run() + * which instructs Gnome to launch the thread + * which will run this application. + * + * Once the application has been launched, main() has nothing more to do. + * The rest will take place first in application.c and then in window.c. + */ diff --git a/src/ui/application.c b/src/ui/application.c index c36052f..c404e53 100644 --- a/src/ui/application.c +++ b/src/ui/application.c @@ -151,3 +151,58 @@ GemGraphClientApplication *gem_graph_client_application_new( /* https://docs.gtk.org/gtk4/input-handling.html */ + +/* + * Le rôle de application.c est de donner au gestionnaire de bureau Gnome + * toutes les informations nécessaires + * au fonctionnement de l'application gem_graph_client. + * + * Lorsque Gnome reçoit de gtk la commande : g_application_run() + * il répond en exécutant deux fonctions primitives + * qui doivent se trouver dans application.c : + * - gem_graph_client_application_class_init() et + * - gem_graph_client_application_init() + * + * gem_graph_client_application_class_init() + * crée la classe application qui décrira l'application gem_graph_client + * et la rend active. + * + * gem_graph_client_application_init() + * spécifie les propriétés de l'application de manière plus détaillée. + * L'une de ses premières tâches et de désactiver des actions + * qui pourraient être demandées par l'utilisateur + * alors que l'application n'est pas encore prête à y répondre. + * Lorsque la totalité de l'application aura été mise en place + * et qu'elle sera fonctionnelle, ces actions seront réactivées par : + * gem_graph_client_application_activate() + * + * Une fois l'application fonctionnelle, la fenêtre peut être créée. + * La description des opérations relatives à la fenêtre se trouvent dans window.c + */ + +/* + * The role of application.c is to give the Gnome desktop manager + * all the necessary information to run the application gem_graph_client. + * + * When Gnome receives the g_application_run() command from gtk + * it responds by executing two primitive functions + * in the application.c file: + * - gem_graph_client_application_class_init() and + * - gem_graph_client_application_init() + * + * gem_graph_client_application_class_init() + * creates the application class that describes the gem_graph_client + * application and makes it active. + * + * gem_graph_client_application_init() + * specifies the application's properties in greater detail. + * One of its first tasks is to disable actions + * which may be requested by the user + * when the application is not yet ready to respond. + * Once the entire application is up and functional, + * these actions will be reactivated by : + * gem_graph_client_application_activate() + * + * Once the application is up and running, the window can be created. + * Window operations are described in window.c + */