2024-05-06 21:45:02 +02:00
|
|
|
/******************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* E coli by David S. Goodsell (2009) */
|
|
|
|
/* --- */
|
|
|
|
/* Let this freeze frame guide us towards the model */
|
|
|
|
/* that alone can account for the phenomenon ! */
|
|
|
|
/* */
|
|
|
|
/******************************************************************************/
|
|
|
|
|
2024-04-27 16:16:21 +02:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <gtk/gtk.h>
|
2024-05-06 12:45:24 +02:00
|
|
|
#define W 1920
|
|
|
|
#define H 960
|
2024-05-06 23:29:54 +02:00
|
|
|
#define W_IMAGE 1920 - 64
|
|
|
|
#define H_IMAGE 960 - 46
|
2024-05-06 12:45:24 +02:00
|
|
|
#define H_STYLES_PANE 60
|
2024-04-27 16:16:21 +02:00
|
|
|
|
|
|
|
void print_text(GtkWidget *widget, gpointer data);
|
2024-05-06 17:14:52 +02:00
|
|
|
GtkWidget *get_a_space_test_image();
|
2024-05-06 12:45:24 +02:00
|
|
|
GtkScrolledWindow *get_scrolled_gl_area();
|
2024-05-06 21:45:02 +02:00
|
|
|
GtkBox *get_RUN_STOP_box();
|
|
|
|
GtkBox *get_STEP_by_STEP_box();
|
2024-05-06 22:19:58 +02:00
|
|
|
GtkBox *get_CONTROL_box();
|
2024-05-06 21:45:02 +02:00
|
|
|
GtkBox *get_ZOOM_box();
|
|
|
|
GtkBox *get_XYZ_box();
|
2024-05-06 17:14:52 +02:00
|
|
|
GtkWidget *get_scroll_speed();
|
2024-04-28 06:21:57 +02:00
|
|
|
void window_bar(GtkWindow *window, char *title);
|
2024-05-06 12:45:24 +02:00
|
|
|
GtkWidget *get_objects_and_situations_horizontal_pane();
|
2024-05-06 21:45:02 +02:00
|
|
|
GtkBox *get_ELAPSED_TIME_box();
|
2024-05-06 12:45:24 +02:00
|
|
|
GtkProgressBar *get_simulation_time_extent_buffer();
|
2024-04-29 23:43:04 +02:00
|
|
|
void activate (GtkApplication *app, gpointer user_data);
|
|
|
|
|
2024-05-07 10:03:31 +02:00
|
|
|
GtkWidget *get_run_space_page_new();
|
|
|
|
GtkWidget *get_run_rules_page_new();
|
|
|
|
GtkWidget *get_run_measures_page_new();
|
|
|
|
GtkWidget *get_run_results_page_new();
|
|
|
|
GtkWidget *get_run_discuss_page_new();
|
|
|
|
GtkWidget *get_run_help_page_new();
|
|
|
|
|
|
|
|
GtkWidget *get_edit_space_page_new();
|
|
|
|
GtkWidget *get_edit_rules_page_new();
|
|
|
|
GtkWidget *get_edit_measures_page_new();
|
|
|
|
GtkWidget *get_edit_results_page_new();
|
|
|
|
GtkWidget *get_edit_discuss_page_new();
|
|
|
|
GtkWidget *get_edit_help_page_new();
|
2024-04-29 23:43:04 +02:00
|
|
|
|
2024-05-06 12:45:24 +02:00
|
|
|
void click_print_do (GtkWindow *window, GtkWidget *grid,
|
|
|
|
char *label, char *text, int x, int y, int w, int h);
|
|
|
|
|
2024-05-01 10:07:50 +02:00
|
|
|
// https://docs.gtk.org/gtk4/visual_index.html < widgets gallery
|
|
|
|
|
2024-05-06 21:45:02 +02:00
|
|
|
|
|
|
|
|
2024-05-01 10:07:50 +02:00
|
|
|
/*
|
|
|
|
Dans : space_page_new() doivent être déclarées
|
|
|
|
et organisées de façon aussi ergonomique que possible :
|
|
|
|
|
|
|
|
- les commandes de mouvement (run/stop, slow down/speed up, step by step, do/undo/redo)
|
|
|
|
et le buffer qui montre où on en est dans le temps de simulation
|
|
|
|
(un seul bouton pour toutes ces commandes ?)
|
|
|
|
|
|
|
|
- les commandes qui modifient l'orientation (X,Y,Z) de l'espace, le zoom, la perspective
|
|
|
|
|
|
|
|
- les commandes qui modifient les apparences des grilles et des flèches
|
|
|
|
|
|
|
|
- les commandes qui modifient les apparences des objets et des situations d'intérêt
|
|
|
|
(+/- transparents, colorés, etc.)
|
2024-05-06 21:45:02 +02:00
|
|
|
*/
|
2024-05-01 10:07:50 +02:00
|
|
|
|