/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Gem-graph client * * * * Widgets header * * * * Copyright © 2021 Libre en Communs * * Copyright © 2021 Adrien Bourmault * * 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 . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #pragma once #include #define n_objects 32 #define n_situations 64 /******************************************************************************/ /* W I N D O W S */ /******************************************************************************/ void widget_create_main_window (GtkApplication *app); void widget_create_dialog_window (GtkApplication *app); void widget_create_text_window (GtkApplication *app); void widget_topbar_design_main_window (GtkWindow *main_window); void widget_topbar_design_dialog_window (GtkWindow *main_window, GtkWindow *dialog_window); void widget_topbar_design_text_window (GtkWindow *main_window, GtkWindow *text_window); void *widget_topbar_get_main_window(); void *widget_topbar_get_dialog_window(); void *widget_topbar_get_text_window(); /******************************************************************************/ /* W I D G E T S */ /******************************************************************************/ GtkWidget *widget_rec_state_page(); GtkWidget *widget_rec_rules_page(); GtkWidget *widget_rec_stock_page(); void reset_all_objects_transparencies_to_value (GtkScrollbar *object_bar[], int value); GtkWidget *widget_rec_stock_text (gchar *text_name); /******************************************************************************/ /* M E N U */ /******************************************************************************/ struct MenuNode_t {gchar *text; struct MenuNode_t *child, *next;}; struct MenuNode_t *widget_create_user_menu_node (const gchar* text); GtkWidget *widget_rec_menu_anchor(); /******************************************************************************/ /* T R E E */ /******************************************************************************/ struct TreeNode_t {gchar *text; struct TreeNode_t *child, *next;}; struct TreeNode_t *widget_create_user_tree_node (const gchar* text); void widget_add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child); void labo_let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root); GtkScrolledWindow *widget_rec_user_rules_tree (); /******************************************************************************/ /* I M A G E S */ /******************************************************************************/ // images are in : data / image / GtkWidget *widget_rec_image_E_coli(); GtkWidget *widget_rec_image_GLUTAMATE(); GtkWidget *widget_rec_image_GLUTAMINE(); GtkWidget *widget_rec_image_ATP(); GtkWidget *widget_rec_image_AMP(); /******************************************************************************/ /* T E X T S */ /******************************************************************************/ // texts are in : data / text / gchar *widget_rec_text_address_theory (); gchar *widget_rec_text_address_about_commands (); gchar *widget_rec_text_address_any (); /******************************************************************************/ /* L A B O */ /******************************************************************************/ void learning_how_to_create_a_menu (GtkMenuButton* menu_button); void labo_create_a_simple_gtk_string_list ();