S P A C E P A G E S S P E C I F I C A T I O N S

This commit is contained in:
Jean Sirmai 2024-05-08 11:13:33 +02:00
parent 3f90beedb4
commit 0b49a31522
Signed by: jean
GPG Key ID: FB3115C340E057E3
8 changed files with 189 additions and 153 deletions

83
cold.h
View File

@ -7,54 +7,39 @@
/* */ /* */
/******************************************************************************/ /******************************************************************************/
/*------------------------------------------------------------------------------ /*
* Dans : [space_page - mode run] doivent être visibles : >>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------
*
* -(1) les commandes de mouvement (1) les commandes de mouvement:
* (run/stop, slow down/speed up, step by step, do/undo/redo) - run/stop, slow down/speed up, step by step, do/undo/redo
* + le buffer [elapsed time] qui montre le temps de simulation écoulé + le buffer [elapsed time] qui montre le temps de simulation écoulé
* (2) les commandes qui modifient la perception de l'espace (la caméra)
* -(2) les commandes qui modifient l'orientation (X,Y,Z) de l'espace, - son orientation (X,Y,Z),
* + le zoom, la perspective + le zoom,
* + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel)
* -(3) les commandes qui modifient les apparences des objets (3) les commandes qui modifient les apparences des objets et des situations d'intérêt
* + des situations d'intérêt (+/- transparents, colorés, etc.)
* (+/- transparents, colorés, etc.) (4) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)
* (0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'ÉDITER L'ESPACE ! <<<
* -(4) les commandes qui modifient les apparences des grilles et des flèches >>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------
* (1) les commandes qui modifient la perception de l'espace (la caméra)
* -(0) aucune commande ne doit permettre l'édition de l'espace - son orientation (X,Y,Z),
* + le zoom,
* ----------------------------------------------------------------------------- + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel)
* Dans : [space_page - mode edit] : (2) les commandes qui modifient les apparences des objets et des situations d'intérêt
* (+/- transparents, colorés, etc.)
* -(0) les commandes de mouvement ainsi que le buffer [elapsed time] (3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)
* NE doivent PAS être accessibles / visibles (4) les commandes d'édition locales (drag and drop une flèche)
* ('faire de la place' pour insérer)
* -(1) les commandes qui modifient l'orientation (X,Y,Z) de l'espace global, (sélectionner pour déplacer ou enlever...)
* et qui donnent accès à la partie de cet espace à éditer NB ces commandes doivent être graphiques et/ou accessibles par raccourcis ou en ligne
* (zoom, perspective, distances oeil-écran, écran-matrice) (5) les commandes d'édition globales
* deviennent prioritaires, suivies par : (ex: introduire, retirer, transformer +/-aléatoirement (n) objets dans l'espace)
* NB une action effectuée sur une zone d'intérêt devrait pouvoir être automatiquement appliquée
* -(2) les commandes qui modifient les apparences des objets à d'autres zones d'intérêt identifiées comme similaires
* + des situations d'intérêt (0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<<
* (+/- transparents, colorés, etc.) >>> L'objectif est que l'utilisateur ait accès à une organsisation aussi ergonomique que possible -----
* i.e : chaque utilisateur devrait disposer de 'préférences'
* -(3) les commandes qui modifient les apparences des grilles et des flèches c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés.
*
* -(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.
*/ */

BIN
myprogram

Binary file not shown.

11
pages.c
View File

@ -27,8 +27,9 @@ GtkWidget *get_edit_discuss_page_new(){
} }
GtkWidget *get_edit_help_page_new(){ GtkWidget *get_edit_help_page_new(){
GtkWidget *xxx_grid = gtk_grid_new(); GtkWidget *edit_help_grid = gtk_grid_new();
return xxx_grid; gtk_grid_attach (GTK_GRID(edit_help_grid), GTK_WIDGET(get_frame_with_label()), 0, 0, 1, 1);
return edit_help_grid;
} }
GtkWidget *get_run_measures_page_new(){ GtkWidget *get_run_measures_page_new(){
@ -57,9 +58,9 @@ GtkWidget *get_run_discuss_page_new(){
} }
GtkWidget *get_run_help_page_new(){ GtkWidget *get_run_help_page_new(){
GtkWidget *help_grid = gtk_grid_new(); GtkWidget *run_help_grid = gtk_grid_new();
gtk_grid_attach (GTK_GRID (help_grid), gtk_button_new_with_label ("Can I help you ?"), 0, 0, 1, 1); gtk_grid_attach (GTK_GRID(run_help_grid), GTK_WIDGET(get_frame_with_label()), 0, 0, 1, 1);
return help_grid; return run_help_grid;
} }

83
pages.h
View File

@ -33,54 +33,39 @@ GtkWidget *get_edit_help_page_new();
/*------------------------------------------------------------------------------ /*
* Dans : [space_page - mode run] doivent être visibles : >>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------
*
* -(1) les commandes de mouvement (1) les commandes de mouvement:
* (run/stop, slow down/speed up, step by step, do/undo/redo) - run/stop, slow down/speed up, step by step, do/undo/redo
* + le buffer [elapsed time] qui montre le temps de simulation écoulé + le buffer [elapsed time] qui montre le temps de simulation écoulé
* (2) les commandes qui modifient la perception de l'espace (la caméra)
* -(2) les commandes qui modifient l'orientation (X,Y,Z) de l'espace, - son orientation (X,Y,Z),
* + le zoom, la perspective + le zoom,
* + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel)
* -(3) les commandes qui modifient les apparences des objets (3) les commandes qui modifient les apparences des objets et des situations d'intérêt
* + des situations d'intérêt (+/- transparents, colorés, etc.)
* (+/- transparents, colorés, etc.) (4) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)
* (0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'ÉDITER L'ESPACE ! <<<
* -(4) les commandes qui modifient les apparences des grilles et des flèches >>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------
* (1) les commandes qui modifient la perception de l'espace (la caméra)
* -(0) aucune commande ne doit permettre l'édition de l'espace - son orientation (X,Y,Z),
* + le zoom,
* ----------------------------------------------------------------------------- + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel)
* Dans : [space_page - mode edit] : (2) les commandes qui modifient les apparences des objets et des situations d'intérêt
* (+/- transparents, colorés, etc.)
* -(0) les commandes de mouvement ainsi que le buffer [elapsed time] (3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)
* NE doivent PAS être accessibles / visibles (4) les commandes d'édition locales (drag and drop une flèche)
* ('faire de la place' pour insérer)
* -(1) les commandes qui modifient l'orientation (X,Y,Z) de l'espace global, (sélectionner pour déplacer ou enlever...)
* et qui donnent accès à la partie de cet espace à éditer NB ces commandes doivent être graphiques et/ou accessibles par raccourcis ou en ligne
* (zoom, perspective, distances oeil-écran, écran-matrice) (5) les commandes d'édition globales
* deviennent prioritaires, suivies par : (ex: introduire, retirer, transformer +/-aléatoirement (n) objets dans l'espace)
* NB une action effectuée sur une zone d'intérêt devrait pouvoir être automatiquement appliquée
* -(2) les commandes qui modifient les apparences des objets à d'autres zones d'intérêt identifiées comme similaires
* + des situations d'intérêt (0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<<
* (+/- transparents, colorés, etc.) >>> L'objectif est que l'utilisateur ait accès à une organsisation aussi ergonomique que possible -----
* i.e : chaque utilisateur devrait disposer de 'préférences'
* -(3) les commandes qui modifient les apparences des grilles et des flèches c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés.
*
* -(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.
*/ */

BIN
pages.o

Binary file not shown.

View File

@ -151,7 +151,9 @@ GtkWidget *get_objects_and_situations_horizontal_pane(){
gtk_paned_set_start_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (get_frame_objects())); gtk_paned_set_start_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (get_frame_objects()));
gtk_paned_set_end_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (get_frame_situations())); gtk_paned_set_end_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (get_frame_situations()));
return objects_and_situations_horizontal_pane; return objects_and_situations_horizontal_pane;
}GtkScrolledWindow *get_scrolled_gl_area(){ }
GtkScrolledWindow *get_scrolled_gl_area(){
GtkScrolledWindow *scrolled = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new()); GtkScrolledWindow *scrolled = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new());
gtk_scrolled_window_set_min_content_width (scrolled, W_IMAGE); gtk_scrolled_window_set_min_content_width (scrolled, W_IMAGE);
gtk_scrolled_window_set_min_content_height (scrolled, H_IMAGE); gtk_scrolled_window_set_min_content_height (scrolled, H_IMAGE);
@ -164,3 +166,78 @@ GtkWidget *get_objects_and_situations_horizontal_pane(){
return scrolled; return scrolled;
} }
GtkFrame *get_frame_with_label(){ // EN ATTENDANT DE SAVOIR UTILISER : GtkTextTagTable et GtkTextBuffer
char *text = "\n\
>>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------\n\
\n\
(1) les commandes de mouvement:\n\
- run/stop, slow down/speed up, step by step, do/undo/redo\n\
+ le buffer [elapsed time] qui montre le temps de simulation écoulé\n\
\n\
(2) les commandes qui modifient la perception de l'espace (la caméra)\n\
- son orientation (X,Y,Z),\n\
+ le zoom,\n\
+ les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel) \n\
\n\
(3) les commandes qui modifient les apparences des objets et des situations d'intérêt\n\
(+/- transparents, colorés, etc.)\n\
\n\
(4) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)\n\
\n\
(0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'ÉDITER L'ESPACE ! <<<\n\
\n\
\n\
>>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------\n\
\n\
(1) les commandes qui modifient la perception de l'espace (la caméra)\n\
- son orientation (X,Y,Z),\n\
+ le zoom,\n\
+ les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel) \n\
\n\
(2) les commandes qui modifient les apparences des objets et des situations d'intérêt\n\
(+/- transparents, colorés, etc.)\n\
\n\
(3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)\n\
\n\
(4) les commandes d'édition locales (drag and drop une flèche)\n\
('faire de la place' pour insérer)\n\
(sélectionner pour déplacer ou enlever...)\n\
NB ces commandes doivent être graphiques et/ou accessibles par raccourcis ou en ligne\n\
\n\
(5) les commandes d'édition globales\n\
(ex: introduire, retirer, transformer +/-aléatoirement (n) objets dans l'espace)\n\
\n\
\n\
NB une action effectuée sur une zone d'intérêt devrait pouvoir être automatiquement appliquée\n\
à d'autres zones d'intérêt identifiées comme similaires\n\
\n\
(0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<<\n\
\n\
\n\
>>> L'objectif est que l'utilisateur ait accès à une organsisation aussi ergonomique que possible -----\n\
\n\
i.e : chaque utilisateur devrait disposer de 'préférences'\n\
c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés.\n\
";
GtkFrame *space_specif = GTK_FRAME(gtk_frame_new ("Space (run / edit) specifications"));
GtkWidget *any_Label = GTK_WIDGET (gtk_label_new (text));
gtk_frame_set_child (GTK_FRAME (space_specif), GTK_WIDGET (any_Label));
return space_specif;
}
//GtkFrame *space_specif = gtk_frame_new (char* const "Space (run / edit) specifications");
GtkWidget *get_text_view(){ // WTF ?!& @Grr #~! https://docs.gtk.org/gtk4/section-text-widget.html
GtkWidget *my_view = gtk_text_view_new ();
GtkTextTagTable *my_table = gtk_text_tag_table_new ();
GtkTextBuffer *my_buffer = gtk_text_buffer_new (my_table);
gtk_text_buffer_set_text (my_buffer, "Hello, this is some text", -1);
gtk_text_view_set_buffer (GTK_TEXT_VIEW (my_view), my_buffer);
/* Now you might put the view in a container and display it on the
* screen; when the user edits the text, signals on the buffer
* will be emitted, such as "changed", "insert_text", and so on.
*/
return my_view;
}

View File

@ -8,6 +8,8 @@
/******************************************************************************/ /******************************************************************************/
GtkWidget *get_test_image(); GtkWidget *get_test_image();
GtkWidget *get_text_view();
GtkFrame *get_frame_with_label();
GtkScrolledWindow *get_scrolled_gl_area(); GtkScrolledWindow *get_scrolled_gl_area();
GtkBox *get_RUN_STOP_box(); GtkBox *get_RUN_STOP_box();
GtkBox *get_STEP_by_STEP_box(); GtkBox *get_STEP_by_STEP_box();
@ -21,55 +23,41 @@ GtkWidget *get_objects_and_situations_horizontal_pane();
GtkBox *get_ELAPSED_TIME_box(); GtkBox *get_ELAPSED_TIME_box();
GtkProgressBar *get_simulation_time_extent_buffer(); GtkProgressBar *get_simulation_time_extent_buffer();
// https://docs.gtk.org/gtk4/section-text-widget.html
/*------------------------------------------------------------------------------ /*
* Dans : [space_page - mode run] doivent être visibles : >>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------
*
* -(1) les commandes de mouvement (1) les commandes de mouvement:
* (run/stop, slow down/speed up, step by step, do/undo/redo) - run/stop, slow down/speed up, step by step, do/undo/redo
* + le buffer [elapsed time] qui montre le temps de simulation écoulé + le buffer [elapsed time] qui montre le temps de simulation écoulé
* (2) les commandes qui modifient la perception de l'espace (la caméra)
* -(2) les commandes qui modifient l'orientation (X,Y,Z) de l'espace, - son orientation (X,Y,Z),
* + le zoom, la perspective + le zoom,
* + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel)
* -(3) les commandes qui modifient les apparences des objets (3) les commandes qui modifient les apparences des objets et des situations d'intérêt
* + des situations d'intérêt (+/- transparents, colorés, etc.)
* (+/- transparents, colorés, etc.) (4) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)
* (0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'ÉDITER L'ESPACE ! <<<
* -(4) les commandes qui modifient les apparences des grilles et des flèches >>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------
* (1) les commandes qui modifient la perception de l'espace (la caméra)
* -(0) aucune commande ne doit permettre l'édition de l'espace - son orientation (X,Y,Z),
* + le zoom,
* ----------------------------------------------------------------------------- + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel)
* Dans : [space_page - mode edit] : (2) les commandes qui modifient les apparences des objets et des situations d'intérêt
* (+/- transparents, colorés, etc.)
* -(0) les commandes de mouvement ainsi que le buffer [elapsed time] (3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.)
* NE doivent PAS être accessibles / visibles (4) les commandes d'édition locales (drag and drop une flèche)
* ('faire de la place' pour insérer)
* -(1) les commandes qui modifient l'orientation (X,Y,Z) de l'espace global, (sélectionner pour déplacer ou enlever...)
* et qui donnent accès à la partie de cet espace à éditer NB ces commandes doivent être graphiques et/ou accessibles par raccourcis ou en ligne
* (zoom, perspective, distances oeil-écran, écran-matrice) (5) les commandes d'édition globales
* deviennent prioritaires, suivies par : (ex: introduire, retirer, transformer +/-aléatoirement (n) objets dans l'espace)
* NB une action effectuée sur une zone d'intérêt devrait pouvoir être automatiquement appliquée
* -(2) les commandes qui modifient les apparences des objets à d'autres zones d'intérêt identifiées comme similaires
* + des situations d'intérêt (0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<<
* (+/- transparents, colorés, etc.) >>> L'objectif est que l'utilisateur ait accès à une organsisation aussi ergonomique que possible -----
* i.e : chaque utilisateur devrait disposer de 'préférences'
* -(3) les commandes qui modifient les apparences des grilles et des flèches c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés.
*
* -(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.
*/ */

BIN
widgets.o

Binary file not shown.