/******************************************************************************/ /* */ /* E coli by David S. Goodsell (2009) */ /* --- */ /* Let this freeze frame guide us towards the model */ /* that alone can account for the phenomenon ! */ /* */ /******************************************************************************/ #define W 1920 #define H 960 #define W_IMAGE 1920 - 64 #define H_IMAGE 960 - 46 #define H_STYLES_PANE 60 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(); // https://docs.gtk.org/gtk4/visual_index.html < widgets gallery /*------------------------------------------------------------------------------ * Dans : [space_page - mode run] doivent être visibles : * * -(1) les commandes de mouvement * (run/stop, slow down/speed up, step by step, do/undo/redo) * + le buffer [elapsed time] qui montre le temps de simulation écoulé * * -(2) les commandes qui modifient l'orientation (X,Y,Z) de l'espace, * + le zoom, la perspective * * -(3) les commandes qui modifient les apparences des objets * + des situations d'intérêt * (+/- transparents, colorés, etc.) * * -(4) les commandes qui modifient les apparences des grilles et des flèches * * -(0) aucune commande ne doit permettre l'édition de l'espace * * ----------------------------------------------------------------------------- * Dans : [space_page - mode edit] : * * -(0) les commandes de mouvement ainsi que le buffer [elapsed time] * NE doivent PAS être accessibles / visibles * * -(1) les commandes qui modifient l'orientation (X,Y,Z) de l'espace global, * et qui donnent accès à la partie de cet espace à éditer * (zoom, perspective, distances oeil-écran, écran-matrice) * deviennent prioritaires, suivies par : * * -(2) les commandes qui modifient les apparences des objets * + des situations d'intérêt * (+/- transparents, colorés, etc.) * * -(3) les commandes qui modifient les apparences des grilles et des flèches * * -(4) les commandes d'édition locales (drag and drop une flèche) * ("faire de la place" pour insérer) * (sélectionner pour déplacer ou enlever...) * NB ces commandes doivent être graphiques et/ou accessibles en ligne * * -(5) les commandes d'édition globales * (ex: introduire aléatoirement (n) objets dans l'espace) * (ou retirer, transformer ...) * * ----------------------------------------------------------------------------- * * Tous ces widgets doivent être organisées de façon aussi ergonomique que possible. * i.e : chaque utilisateur devrait disposer de "préférences" * et avoir la possiblité de faire des choix ergonomiques. */