/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Gem-graph client * * * * Main * * * * Copyright © 2021 Libre en Communs * * Copyright © 2021 Adrien Bourmault * * Copyright © 2021 Arthur Menges * * Copyright © 2021 Jean Sirmai * * * * This file is part of Gem-graph. * * * * This program is free software: you can redistribute it and/or modify it * * under the terms of the GNU Affero General Public License * * as published by the Free Software Foundation, * * either version 3 of the License, * * or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; * * without even the implied warranty of MERCHANTABILITY * * or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Affero General Public License for more details. * * * * You should have received a copy of the GNU Affero General Public License * * along with this program. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include "../include/callbacks.h" /* 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_'). * S'ils deviennent trop nombreux, ils seront répartis * dans des fichiers regroupés dans un dossier: 'src/callbacks.c'. * (ou 'src/callbacks' ?) * La description des fonctions devrait plutôt précéder ces fonctions * pour alléger le fichier 'callbacks.h' (?) */ /* La description de l'aspect (du 'design') des fenêtres * se trouve dans le dossier 'widget.c' * et s'organise naturellement en arborescence * qu'il sera facile de répartir en dossiers et fichiers * au fur à mesure de leur développement. * * Actuellement, par exemple, la fenêtre principale comporte * une barre de titre (décrite dans 'headers.c') * et s'ouvre sur la vue de l'état ('state.c') en mode 'EXEC'. * Cette vue comporte trois panneaux (widgets) principaux: * sup, moyen, inf ou encore: CONTRAST, CAMERA, CONTROL ou EDIT * si on veut les nommer d'après leur fonction. * * Lorsque la description de chaque widget s'affinera * et demandera plus de place, les trois widgets principaux * deviendront des dossiers et les widgets qu'ils contiennent * des fichiers (ou des dossiers si besoin) et ainsi de suite... * * Dans cette logique, * sauf s'il y a d'autres arbres que l'arbre des utilisateurs, * l'actuel ficher 'tree.c' devrait être * soit inclus dans le fichier 'rules.c' * (puisque cet arbre est dans la page (le widget) 'rules') * soit, s'il est trop volumineux, et pour faciliter la lisibilité, * dans un dossier 'rules.c' (ou 'rules' ?) * qui regroupera les différents widgets du widget 'rules'. * * NB Il est possible qu'il y ait besoin d'autres structures d'arbres: * dans 'rules', par exemple, il est important de pouvoir visualiser * l'utilisation (l'activité) des différentes règles * ou de différents groupes de règles. * Et donc de disposer d'un ou de plusieurs index vers ces règles. * * Les fonctions 'transversales' comme celles de * 'graph' 'parse', possiblement 'tree' mais - surtout - 'automat', * qui doivent pouvoir être accédées par plusieurs widgets ou callbacks * restent à la racine: 'src/' * * Pour l'instant, le 'include' de 'automat' est dans 'base.h'. * C'est une erreur (tolérable tant qu'automat est à l'état embryonnaire). * À terme, il y aura un fichier 'automat.h' dans le dossier 'include' * * (NB labo.c disparaitra, bien sûr !) */ int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("org.jean.gg_hack", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (on_main_window_activation), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); return status; }