diff --git a/cold.h b/cold.h index 7873533..c69bb3b 100644 --- a/cold.h +++ b/cold.h @@ -7,54 +7,39 @@ /* */ /******************************************************************************/ -/*------------------------------------------------------------------------------ - * 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. +/* +>>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------ + +(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 la perception de l'espace (la caméra) + - son orientation (X,Y,Z), + + 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 et des situations d'intérêt + (+/- 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 ! <<< +>>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------ +(1) les commandes qui modifient la perception de l'espace (la caméra) + - son orientation (X,Y,Z), + + le zoom, + + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel) +(2) les commandes qui modifient les apparences des objets et des situations d'intérêt + (+/- transparents, colorés, etc.) +(3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.) +(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 par raccourcis ou en ligne +(5) les commandes d'édition globales + (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 + à d'autres zones d'intérêt identifiées comme similaires +(0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<< +>>> 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' + c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés. */ diff --git a/myprogram b/myprogram index b566847..a584874 100755 Binary files a/myprogram and b/myprogram differ diff --git a/pages.c b/pages.c index 5dfb5e5..4baef39 100644 --- a/pages.c +++ b/pages.c @@ -27,8 +27,9 @@ GtkWidget *get_edit_discuss_page_new(){ } GtkWidget *get_edit_help_page_new(){ - GtkWidget *xxx_grid = gtk_grid_new(); - return xxx_grid; + GtkWidget *edit_help_grid = gtk_grid_new(); + 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(){ @@ -57,9 +58,9 @@ GtkWidget *get_run_discuss_page_new(){ } GtkWidget *get_run_help_page_new(){ - GtkWidget *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); - return help_grid; + GtkWidget *run_help_grid = gtk_grid_new(); + gtk_grid_attach (GTK_GRID(run_help_grid), GTK_WIDGET(get_frame_with_label()), 0, 0, 1, 1); + return run_help_grid; } diff --git a/pages.h b/pages.h index 399e482..295a1c4 100644 --- a/pages.h +++ b/pages.h @@ -33,54 +33,39 @@ GtkWidget *get_edit_help_page_new(); -/*------------------------------------------------------------------------------ - * 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. +/* +>>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------ + +(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 la perception de l'espace (la caméra) + - son orientation (X,Y,Z), + + 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 et des situations d'intérêt + (+/- 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 ! <<< +>>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------ +(1) les commandes qui modifient la perception de l'espace (la caméra) + - son orientation (X,Y,Z), + + le zoom, + + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel) +(2) les commandes qui modifient les apparences des objets et des situations d'intérêt + (+/- transparents, colorés, etc.) +(3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.) +(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 par raccourcis ou en ligne +(5) les commandes d'édition globales + (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 + à d'autres zones d'intérêt identifiées comme similaires +(0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<< +>>> 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' + c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés. */ diff --git a/pages.o b/pages.o index ecb9d2c..fba8725 100644 Binary files a/pages.o and b/pages.o differ diff --git a/widgets.c b/widgets.c index 570e2d4..2b9ab7b 100644 --- a/widgets.c +++ b/widgets.c @@ -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_end_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (get_frame_situations())); 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()); gtk_scrolled_window_set_min_content_width (scrolled, W_IMAGE); gtk_scrolled_window_set_min_content_height (scrolled, H_IMAGE); @@ -164,3 +166,78 @@ GtkWidget *get_objects_and_situations_horizontal_pane(){ 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; +} diff --git a/widgets.h b/widgets.h index 38cf808..3011234 100644 --- a/widgets.h +++ b/widgets.h @@ -8,6 +8,8 @@ /******************************************************************************/ GtkWidget *get_test_image(); +GtkWidget *get_text_view(); +GtkFrame *get_frame_with_label(); GtkScrolledWindow *get_scrolled_gl_area(); GtkBox *get_RUN_STOP_box(); GtkBox *get_STEP_by_STEP_box(); @@ -21,55 +23,41 @@ GtkWidget *get_objects_and_situations_horizontal_pane(); GtkBox *get_ELAPSED_TIME_box(); GtkProgressBar *get_simulation_time_extent_buffer(); +// https://docs.gtk.org/gtk4/section-text-widget.html -/*------------------------------------------------------------------------------ - * 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. +/* +>>> Dans : [space_page - mode RUN] doivent être : ------------------------------------------------------ + +(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 la perception de l'espace (la caméra) + - son orientation (X,Y,Z), + + 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 et des situations d'intérêt + (+/- 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 ! <<< +>>> Dans : [space_page - mode EDIT] doivent être : ------------------------------------------------------ +(1) les commandes qui modifient la perception de l'espace (la caméra) + - son orientation (X,Y,Z), + + le zoom, + + les paramètres qui définissent la perspective (distances oeil/écran, écran/objet virtuel) +(2) les commandes qui modifient les apparences des objets et des situations d'intérêt + (+/- transparents, colorés, etc.) +(3) les commandes qui modifient l'apparence de l'espace (grilles, +/- surfaces, aspect des flèches, etc.) +(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 par raccourcis ou en ligne +(5) les commandes d'édition globales + (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 + à d'autres zones d'intérêt identifiées comme similaires +(0) NB >>> AUCUNE COMMANDE NE DOIT PERMETTRE D'EXÉCUTER UN RUN ! <<< +>>> 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' + c'est-à-dire avoir la possiblité de faire des choix ergonomiques personnalisés. */ diff --git a/widgets.o b/widgets.o index 21880e6..e5349fa 100644 Binary files a/widgets.o and b/widgets.o differ