2023-01-23 18:52:57 +01:00
|
|
|
/*
|
|
|
|
* Gem-graph OpenGL experiments
|
|
|
|
*
|
|
|
|
* Desc: Main file
|
|
|
|
*
|
|
|
|
* Copyright (C) 2023 Arthur Menges <arthur.menges@a-lec.org>
|
|
|
|
* Copyright (C) 2023 Adrien Bourmault <neox@a-lec.org>
|
|
|
|
*
|
|
|
|
* 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 <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <gtk-4.0/gtk/gtk.h>
|
|
|
|
|
|
|
|
#include "../include/base.h"
|
2023-01-25 12:24:52 +01:00
|
|
|
#include "../include/ui.h"
|
2023-01-23 18:52:57 +01:00
|
|
|
|
2023-11-30 13:16:16 +01:00
|
|
|
/*
|
|
|
|
* 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
|
2023-11-30 19:50:18 +01:00
|
|
|
* qui permet de (sert à) donner au gestionnaire de bureau, Gnome, les informations
|
2023-11-30 13:16:16 +01:00
|
|
|
* nécessaires et suffisantes pour initialiser une nouvelle application.
|
|
|
|
*
|
2023-11-30 19:50:18 +01:00
|
|
|
* gem_graph_client réécrit cette fonction à la fin de application.c
|
|
|
|
* en l'utilisant pour passer à Gnome les informations suivantes :
|
2023-11-30 13:16:16 +01:00
|
|
|
* - le nom de l'application (son identité) et
|
2023-11-30 19:50:18 +01:00
|
|
|
* - des flags (initialisés à des valeurs par défaut)
|
2023-11-30 13:16:16 +01:00
|
|
|
*
|
2023-11-30 19:50:18 +01:00
|
|
|
* Une fois l'espace mémoire nécessaire réservé et un nouveau thread créé et
|
|
|
|
* prêt à être exécuté, la nouvelle application peut 'démarrer'.
|
|
|
|
* C'est une autre primitive de gtk.h : g_application_run()
|
|
|
|
* qui donne à Gnome l'ordre de lancer ce thread et ainsi de commencer à
|
|
|
|
* exécuter l'application "gem_graph_client".
|
2023-11-30 13:16:16 +01:00
|
|
|
*
|
|
|
|
* Une fois l'application lancée, main() n'a plus rien à faire.
|
2023-11-30 19:50:18 +01:00
|
|
|
* La suite est décrite dans
|
|
|
|
* - application.c (activation / désactivation des actions, ajouts d'accélérateurs)
|
|
|
|
* - gemgraph.ui (description statique de la fenêtre)
|
|
|
|
* - window.c (description dynamique de la fenêtre)
|
2024-01-05 17:46:14 +01:00
|
|
|
* - events.c (description individuelle des actions élémentaires)
|
2023-11-30 19:50:18 +01:00
|
|
|
* - tree.c (description d'une structure particulière) (sera répartie ultérieurement ?)
|
|
|
|
* - base.h (définitions 'transversales'/(communes) utilisables par plusieurs ressources
|
2023-11-30 13:16:16 +01:00
|
|
|
*/
|
2023-06-09 15:03:28 +02:00
|
|
|
|
2023-11-30 19:50:18 +01:00
|
|
|
int main(int argc, char **argv)
|
|
|
|
{
|
|
|
|
g_autoptr(GemGraphClientApplication) app = NULL;
|
|
|
|
int res;
|
|
|
|
|
|
|
|
app = gem_graph_client_application_new("org.alec.gemgraph",
|
|
|
|
G_APPLICATION_DEFAULT_FLAGS);
|
2023-06-09 15:03:28 +02:00
|
|
|
|
2023-11-30 19:50:18 +01:00
|
|
|
res = g_application_run(G_APPLICATION(app), argc, argv);
|
|
|
|
return res;
|
|
|
|
}
|