/******************************************************************************/ /* */ /* E coli by David S. Goodsell (2009) */ /* --- */ /* Let this freeze frame guide us towards the model */ /* that alone can account for the phenomenon ! */ /* */ /******************************************************************************/ #include #include #define W 1920 #define H 960 #define W_IMAGE 1920 - 64 #define H_IMAGE 960 - 46 #define H_STYLES_PANE 60 void print_text(GtkWidget *widget, gpointer data); GtkWidget *get_a_space_test_image(); GtkScrolledWindow *get_scrolled_gl_area(); GtkBox *get_RUN_STOP_box(); GtkBox *get_STEP_by_STEP_box(); GtkBox *get_CONTROL_box(); GtkBox *get_ZOOM_box(); GtkBox *get_XYZ_box(); GtkWidget *get_scroll_speed(); void window_bar(GtkWindow *window, char *title); GtkWidget *get_objects_and_situations_horizontal_pane(); GtkBox *get_ELAPSED_TIME_box(); GtkProgressBar *get_simulation_time_extent_buffer(); void activate (GtkApplication *app, gpointer user_data); 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(); void click_print_do (GtkWindow *window, GtkWidget *grid, char *label, char *text, int x, int y, int w, int h); // https://docs.gtk.org/gtk4/visual_index.html < widgets gallery /* 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.) */