WIP: cleaning TEXT_WINDOW I

This commit is contained in:
Jean Sirmai 2024-07-05 09:48:37 +02:00
parent 08858099ee
commit b80bbed659
Signed by: jean
GPG Key ID: FB3115C340E057E3
9 changed files with 74 additions and 56 deletions

View File

@ -0,0 +1,54 @@
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),
+ l'orientation (X,Y,Z) de l'état dans l'espace (six possibilités),
+ 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),
+ l'orientation (X,Y,Z) de l'état dans l'espace (six possibilités),
+ 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.

3
data/text/any.txt Normal file
View File

@ -0,0 +1,3 @@
any text
(please, edit...)

View File

@ -135,8 +135,10 @@ static inline char *read_file(char *filename)
/******************************************************************************/ /******************************************************************************/
/* T E X T S */ /* T E X T S */
/******************************************************************************/ /******************************************************************************/
// texts will be in : data / text /
// (previously in : widget / stock)
char *get_space_run_edit_specif(); gchar *get_text_address_THEORY ();
char *get_rules_run_edit_specif(); gchar *get_text_address_ABOUT_COMMANDS ();
gchar *get_text_address_ANY ();
/* (texts are in widget / stock) */

View File

@ -102,6 +102,5 @@ GtkWidget *get_window_child_DATA_lab();

View File

@ -101,4 +101,8 @@ static void debug_printing (int prescribed, int sub_automaton) {
} }
} }
/******************************************************************************/
/* N O N E X C L U S I V E S E L E C T I O N S */
/******************************************************************************/

View File

@ -321,7 +321,7 @@ void on_clicked_HOME (GtkWidget *btt_reset, gpointer data) {
} }
void on_clicked_X (GtkWidget *btt_reset, gpointer data) { void on_clicked_X (GtkWidget *btt_reset, gpointer data) {
printf ("ocallback.n_clicked_X button() presents the text_window ( :- ) but... it works only once.\n"); printf ("callback.n_clicked_X button() presents the text_window ( :- ) but... it works only once.\n");
gtk_window_present (GTK_WINDOW (get_text_window())); // works once only ! gtk_window_present (GTK_WINDOW (get_text_window())); // works once only !
} }

View File

@ -33,7 +33,7 @@
#include "../../include/widgets.h" #include "../../include/widgets.h"
#define W_TEXT_WINDOW 700 #define W_TEXT_WINDOW 700
#define H_TEXT_WINDOW 900 #define H_TEXT_WINDOW 1000
static GtkWindow *main_window, *dialog_window, *text_window; static GtkWindow *main_window, *dialog_window, *text_window;
static GtkButton *btt_STATE, *btt_RULES, *btt_DATA; static GtkButton *btt_STATE, *btt_RULES, *btt_DATA;
@ -69,11 +69,12 @@ void widget_TEXT_WINDOW_design (GtkWindow *main_window, GtkWindow *text_window){
gtk_header_bar_set_title_widget (GTK_HEADER_BAR (header_bar), gtk_label_new (title)); gtk_header_bar_set_title_widget (GTK_HEADER_BAR (header_bar), gtk_label_new (title));
gtk_window_set_titlebar (text_window, header_bar); gtk_window_set_titlebar (text_window, header_bar);
gchar *text_address = "/home/jean/Gem-Graph/gem-graph-client/data/text/théorie.txt"; GtkWidget *child = widget_get_STOCK_text (get_text_address_THEORY());
GtkWidget *child = widget_get_STOCK_text (text_address); child = widget_get_STOCK_text (get_text_address_ABOUT_COMMANDS());
gtk_window_set_child (GTK_WINDOW (text_window), GTK_WIDGET (child)); gtk_window_set_child (GTK_WINDOW (text_window), GTK_WIDGET (child));
gtk_widget_set_size_request (GTK_WIDGET (child), W_TEXT_WINDOW, H_TEXT_WINDOW); gtk_widget_set_size_request (GTK_WIDGET (child), W_TEXT_WINDOW, H_TEXT_WINDOW);
// gtk_window_set_resizable (GTK_WINDOW (text_window), TRUE);
gtk_window_set_transient_for (GTK_WINDOW (text_window), GTK_WINDOW (main_window)); gtk_window_set_transient_for (GTK_WINDOW (text_window), GTK_WINDOW (main_window));
gtk_window_set_destroy_with_parent (GTK_WINDOW (text_window), TRUE); gtk_window_set_destroy_with_parent (GTK_WINDOW (text_window), TRUE);
} }

View File

@ -92,50 +92,6 @@ void let_us_create_a_complex_useless_and_expensive_tree (struct TreeNode_t *tree
} }
char *get_space_run_edit_specif(){
return "\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\
+ l'orientation (X,Y,Z) de l'état dans l'espace (six possibilités),\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\
+ l'orientation (X,Y,Z) de l'état dans l'espace (six possibilités),\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";
}
GtkWidget *get_window_child_DATA_lab () { GtkWidget *get_window_child_DATA_lab () {
if (0) printf("widgets.get_window_child_DATA (line 279)\n"); if (0) printf("widgets.get_window_child_DATA (line 279)\n");

View File

@ -72,15 +72,14 @@ GtkWidget *widget_get_STOCK_text (gchar *text_address) {
GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new()); GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (gtk_scrolled_window_new());
gtk_scrolled_window_set_child (scrolled_window, view); gtk_scrolled_window_set_child (scrolled_window, view);
gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_widget_set_vexpand (GTK_WIDGET (scrolled_window), TRUE);
gtk_widget_set_visible (GTK_WIDGET (scrolled_window), TRUE);
gtk_widget_set_visible (GTK_WIDGET (view), TRUE);
return GTK_WIDGET (scrolled_window); return GTK_WIDGET (scrolled_window);
} }
gchar *get_text_address_THEORY () {return "/home/jean/Gem-Graph/gem-graph-client/data/text/théorie.txt";}
gchar *get_text_address_ABOUT_COMMANDS () {return "/home/jean/Gem-Graph/gem-graph-client/data/text/about_commands.txt";}
gchar *get_text_address_ANY () {return "/home/jean/Gem-Graph/gem-graph-client/data/text/any.txt";}