/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #define W 1920 // TODO 2024-06-30 #define H 960 #define W_IMAGE W - 320 #define H_IMAGE H - 126 #define H_STYLES_PANE 30 #define W_IMAGE_LOCAL W / 16 #define H_IMAGE_LOCAL H / 16 void main_window_design (GtkWindow *main_window); void dialog_window_design (GtkWindow *main_window, GtkWindow *dialog_window); GtkWidget *get_window_child_STATE(); GtkWidget *get_window_child_RULES(); GtkWidget *get_window_child_DATA(); GtkWidget *get_selected_rules_vpaned_new(); GtkWidget *get_rules_tree_hpaned_new(); GtkWidget *get_rules_page_new(); GtkWidget *get_TIME_EXEC_controls_box(); GtkWidget *get_SPACE_EDIT_controls_box(); GtkWidget *get_OBJECTS_and_SITUATIONS(); GtkWidget *get_text_view(); GtkWidget *get_image_ALL_SPACE(); GtkWidget *get_image_GLUTAMATE(); GtkWidget *get_image_GLUTAMINE(); GtkWidget *get_image_HISTIDINE(); GtkWidget *get_image_HISTAMINE(); GtkWidget *get_image_PHENYLALANINE(); GtkWidget *get_image_DOPAMINE(); GtkWidget *get_image_ATP(); GtkWidget *get_image_AMP(); GtkButton *get_GtkButton (char *btt_name); GtkFrame *get_frame_with_label(); GtkProgressBar *get_ELAPSED_TIME_ProgressBar(); GtkBox *get_RUN_STOP_box(); GtkBox *get_ZOOM_box(); GtkBox *get_edit_TOOL_box(); GtkBox *get_XYZ_box(); GtkBox *get_rules_user_tree_new(); GtkBox *get_ELAPSED_TIME_box(); struct TreeNode_t {gchar *text; struct TreeNode_t *child, *next;}; void add_child_node (struct TreeNode_t *parent, struct TreeNode_t *child); struct TreeNode_t *create_user_tree_node (const gchar* text); void let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree_root); GtkScrolledWindow *get_user_rules_tree (); void icons_for_fun (GtkHeaderBar *header_bar); // https://blog.gtk.org/2020/09/08/on-list-models/ < TODO