gem-graph-client/widgets.h

76 lines
3.5 KiB
C

/******************************************************************************/
/* */
/* E coli by David S. Goodsell (2009) */
/* --- */
/* Let this freeze frame guide us towards the model */
/* that alone can account for the phenomenon ! */
/* */
/******************************************************************************/
GtkWidget *get_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_edit_TOOL_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();
/*------------------------------------------------------------------------------
* 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.
*/