From d687c3089d189920b31ebe1f20dc681295b4fbc5 Mon Sep 17 00:00:00 2001 From: Jean Sirmai Date: Mon, 6 May 2024 21:45:02 +0200 Subject: [PATCH] before improving the objects_and_situations_horizontal_pane --- cold.c | 94 +++++++++++++++++++++++++------ cold.h | 19 ++++++- cold.o | Bin 30664 -> 38448 bytes hot.c | 77 ++++++------------------- hot.h | 60 -------------------- hot.o | Bin 7384 -> 7368 bytes main.o | Bin 9312 -> 9312 bytes myprogram | Bin 33040 -> 38192 bytes warm.c | 165 ------------------------------------------------------ warm.h | 60 +------------------- warm.o | Bin 11272 -> 2704 bytes 11 files changed, 113 insertions(+), 362 deletions(-) diff --git a/cold.c b/cold.c index 3d8a0b1..b237065 100644 --- a/cold.c +++ b/cold.c @@ -4,17 +4,6 @@ void print_text(GtkWidget *widget, gpointer data) {g_print (data);} -GtkWidget *get_objects_and_situations_horizontal_pane(){ - GtkWidget *objects_and_situations_horizontal_pane = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); - GtkWidget *frame_objects = gtk_frame_new ("Objects"); // define each class of object transparence - GtkWidget *frame_situations = gtk_frame_new ("Situations"); // facilitate each situation identification - gtk_widget_set_size_request (objects_and_situations_horizontal_pane, W_GL_AREA, H_STYLES_PANE); - gtk_widget_set_size_request (frame_objects, 100, H_STYLES_PANE); // < utile seulement pour la largeur min/max - gtk_widget_set_size_request (frame_situations, 100, H_STYLES_PANE); // < utile seulement pour la largeur min/max - gtk_paned_set_start_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (frame_objects)); - gtk_paned_set_end_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (frame_situations)); - return objects_and_situations_horizontal_pane; -} GtkWidget *get_a_space_test_image(){ GtkWidget *image; @@ -33,7 +22,45 @@ GtkWidget *get_scroll_speed(){ return scroll_speed; } -GtkBox *get_XYZ_gtk_box(){ +// TODO cliquer sur "RUN" --> affiche "STOP" (et inversement) +GtkBox *get_RUN_STOP_box(){ + GtkBox *RUN_STOP_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); // spacing = 2 + + GtkWidget *RUN_Label = GTK_WIDGET (gtk_label_new (NULL)); // "RUN")); + const char *str = " RUN\n STOP"; + const char *format = "\%s"; + char *markup; + + markup = g_markup_printf_escaped (format, str); + gtk_label_set_markup (GTK_LABEL (RUN_Label), markup); // Sets the labels text and attributes from markup. + g_free (markup); + + gtk_label_set_max_width_chars (GTK_LABEL(RUN_Label), 12); + gtk_label_set_wrap (GTK_LABEL(RUN_Label), TRUE); + gtk_label_set_xalign (GTK_LABEL(RUN_Label), 0.5); // xalign value, between 0 and 1 + gtk_label_set_yalign (GTK_LABEL(RUN_Label), 0.5); + gtk_label_set_selectable (GTK_LABEL(RUN_Label), FALSE); // default = FALSE + gtk_label_set_single_line_mode (GTK_LABEL(RUN_Label), TRUE); // default = TRUE + // + gtk_box_append (RUN_STOP_box, RUN_Label); + return RUN_STOP_box; +} + +GtkBox *get_STEP_by_STEP_box(){ + GtkBox *STEP_by_STEP_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); + GtkWidget *STEP_by_STEP_Label = GTK_WIDGET (gtk_label_new ("ONE\nSTEP")); + gtk_box_append (STEP_by_STEP_box, STEP_by_STEP_Label); + return STEP_by_STEP_box; +} + +GtkBox *get_ZOOM_box(){ + GtkBox *ZOOM_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); + GtkWidget *ZOOM_Label = GTK_WIDGET (gtk_label_new ("ZOOM\n ---\n(space\nstruct.)")); + gtk_box_append (ZOOM_box, ZOOM_Label); + return ZOOM_box; +} + +GtkBox *get_XYZ_box(){ GtkBox *XYZ_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); // spacing = 2 // GtkWidget *scale_X = gtk_scale_button_new (0, 360, 10, NULL); < à étudier // (double min, double max, double step, const char** icons) @@ -48,16 +75,31 @@ GtkBox *get_XYZ_gtk_box(){ gtk_box_append (XYZ_box, scroll_Y); gtk_box_append (XYZ_box, scroll_Z); +// gtk_box_set_baseline_position (XYZ_box, GTK_BASELINE_POSITION_BOTTOM); + return XYZ_box; } -GtkProgressBar *get_simulation_time_extent_buffer(){ +GtkBox *get_ELAPSED_TIME_box(){ + GtkBox *ELAPSED_TIME_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); + +// GtkProgressBar *get_simulation_time_extent_buffer(){ GtkProgressBar *buffer = GTK_PROGRESS_BAR (gtk_progress_bar_new ()); gtk_progress_bar_set_text (buffer, "<--- [buffer] (simulation extent time) --->"); gtk_progress_bar_set_show_text (buffer, TRUE); - return buffer; + + gtk_box_append (ELAPSED_TIME_box, GTK_WIDGET(buffer)); + return ELAPSED_TIME_box; } +GtkProgressBar *get_simulation_time_extent_buffer(){ + + GtkProgressBar *buffer = GTK_PROGRESS_BAR (gtk_progress_bar_new ()); + gtk_progress_bar_set_text (buffer, "<--- [buffer] (simulation extent time) --->"); + gtk_progress_bar_set_show_text (buffer, TRUE); + + return buffer; +} GtkScrolledWindow *get_scrolled_gl_area(){ GtkScrolledWindow *scrolled = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new()); @@ -92,7 +134,9 @@ GtkWidget *get_measures_page_new(){ GtkWidget *get_results_page_new(){ GtkWidget *results_grid = gtk_grid_new(); - gtk_grid_attach (GTK_GRID(results_grid), gtk_button_new_with_label ("Here are some results :"), 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(results_grid), gtk_button_new_with_label ("Repartitions"), 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(results_grid), gtk_button_new_with_label ("Correlations"), 0, 1, 1, 1); + gtk_grid_attach (GTK_GRID(results_grid), gtk_button_new_with_label ("Evolutions"), 0, 2, 1, 1); return results_grid; } @@ -123,7 +167,7 @@ GtkWidget *get_rules_page_new(){ gtk_paned_set_start_child (GTK_PANED(hpaned), GTK_WIDGET (frame1)); gtk_paned_set_end_child (GTK_PANED(hpaned), GTK_WIDGET (frame2)); - gtk_widget_set_size_request (hpaned, W, H); + gtk_widget_set_size_request (hpaned, 100, H); gtk_widget_set_size_request (frame1, 100, H); // < utile seulement pour la largeur min/max // gtk_widget_set_size_request (frame2, 50, 100); @@ -133,6 +177,22 @@ GtkWidget *get_rules_page_new(){ } +GtkWidget *get_space_page_new(){ + + GtkWidget *space_grid = gtk_grid_new(); +// attach either : get_ELAPSED_TIME_box() or get_simulation_time_extent_buffer() +// gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_ELAPSED_TIME_box()), 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_simulation_time_extent_buffer()), 0, 0, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), get_objects_and_situations_horizontal_pane(), 0, 1, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), get_a_space_test_image(), 0, 2, 1, 10); + gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_RUN_STOP_box()), 1, 0, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), get_scroll_speed(), 1, 1, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_STEP_by_STEP_box()), 1, 2, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_XYZ_box()), 1, 3, 1, 1); + gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_ZOOM_box()), 1, 4, 1, 1); + + return space_grid; +} void window_bar(GtkWindow *window, char *title){ GtkWidget *titlebar = gtk_header_bar_new(); @@ -144,7 +204,7 @@ void window_bar(GtkWindow *window, char *title){ void activate (GtkApplication *app, gpointer user_data) { GtkWindow *window = GTK_WINDOW (gtk_application_window_new (app)); - window_bar (window, "window"); + window_bar (window, "E coli (with permission from David S. Goodsell, 2009)"); GtkNotebook *notebook = GTK_NOTEBOOK(gtk_notebook_new()); gtk_notebook_set_tab_pos (GTK_NOTEBOOK(notebook), GTK_POS_TOP); // GTK_POS_LEFT diff --git a/cold.h b/cold.h index 3866aec..66c4cdd 100644 --- a/cold.h +++ b/cold.h @@ -1,3 +1,12 @@ +/******************************************************************************/ +/* */ +/* E coli by David S. Goodsell (2009) */ +/* --- */ +/* Let this freeze frame guide us towards the model */ +/* that alone can account for the phenomenon ! */ +/* */ +/******************************************************************************/ + #include #include #define W 1920 @@ -9,10 +18,14 @@ void print_text(GtkWidget *widget, gpointer data); GtkWidget *get_a_space_test_image(); GtkScrolledWindow *get_scrolled_gl_area(); -GtkBox *get_XYZ_gtk_box(); +GtkBox *get_RUN_STOP_box(); +GtkBox *get_STEP_by_STEP_box(); +GtkBox *get_ZOOM_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(); void activate (GtkApplication *app, gpointer user_data); @@ -28,6 +41,8 @@ void click_print_do (GtkWindow *window, GtkWidget *grid, // https://docs.gtk.org/gtk4/visual_index.html < widgets gallery + + /* Dans : space_page_new() doivent être déclarées et organisées de façon aussi ergonomique que possible : @@ -42,5 +57,5 @@ et organisées de façon aussi ergonomique que possible : - les commandes qui modifient les apparences des objets et des situations d'intérêt (+/- transparents, colorés, etc.) +*/ - */ diff --git a/cold.o b/cold.o index 0c7a30d42b8218c9630049f3bd060e7ba2faf346..6f6dcf5f59289df57bbf7723bd82ff7e60c2669b 100644 GIT binary patch literal 38448 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 iiyw%8qV #include -//#include "gg/graphics.h" -//#include "hot.h" #include "warm.h" #include "cold.h" // https://docs.gtk.org/gtk4/visual_index.html < widgets gallery -GtkWidget *get_space_page_new(){ - - GtkWidget *space_grid = gtk_grid_new(); - - gtk_grid_attach (GTK_GRID (space_grid), get_objects_and_situations_horizontal_pane(), 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_a_space_test_image()), 0, 1, 1, 10); - gtk_grid_attach (GTK_GRID(space_grid), gtk_button_new_with_label ("RUN"), 1, 0, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), get_scroll_speed(), 1, 1, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), gtk_button_new_with_label ("Step"), 1, 2, 1, 1); -// gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_simulation_time_extent_buffer()), 0, 2, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_XYZ_gtk_box()), 1, 3, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), gtk_button_new_with_label ("zoom"), 1, 4, 1, 1); - - return space_grid; -} - /* - GtkBox *controls_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_VERTICAL, 0)); - gtk_box_append (controls_box, gtk_button_new_with_label ("RUN")); -// gtk_box_append (controls_box, scroll_speed); - gtk_box_append (controls_box, gtk_button_new_with_label ("step")); - -// GtkLevelBar *slow_speed = GTK_LEVEL_BAR (gtk_level_bar_new ()); // or __new_for_interval(0,100); -// gtk_level_bar_set_mode (slow_speed, GTK_LEVEL_BAR_MODE_CONTINUOUS); //_DISCRETE -// gtk_box_append (controls_box, gtk_button_new_with_label ("slow down / speed up")); // GTK_WIDGET(slow_speed)); -// gtk_box_append (controls_box, gtk_button_new_with_label ("step by step")); - - GtkProgressBar *buffer = GTK_PROGRESS_BAR (gtk_progress_bar_new ()); - gtk_progress_bar_set_text (buffer, "<--- [buffer] (simulation extent time) --->"); - gtk_progress_bar_set_show_text (buffer, TRUE); -// gtk_box_append (controls_box, GTK_WIDGET(buffer));//gtk_button_new_with_label ("---- buffer ----")); - - - GtkBox *XYZ_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); // spacing = 2 - // GtkWidget *scale_X = gtk_scale_button_new (0, 360, 10, NULL); < à étudier - // (double min, double max, double step, const char** icons) - GtkAdjustment *X_adjust = gtk_adjustment_new (0, 0, 380, 1, 0, 0); - GtkAdjustment *Y_adjust = gtk_adjustment_new (0, 0, 380, 1, 0, 0); - GtkAdjustment *Z_adjust = gtk_adjustment_new (0, 0, 380, 1, 0, 0); - GtkWidget *scroll_X = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, X_adjust); - GtkWidget *scroll_Y = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, Y_adjust); - GtkWidget *scroll_Z = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, Z_adjust); - - gtk_box_append (XYZ_box, scroll_X); - gtk_box_append (XYZ_box, scroll_Y); - gtk_box_append (XYZ_box, scroll_Z); - - GtkWidget *bottom_grid = gtk_grid_new(); -// gtk_grid_attach (GTK_GRID(bottom_grid), GTK_WIDGET(controls_box), 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(bottom_grid), gtk_button_new_with_label ("Objects / Situations (transparences, styles)"), 0, 1, 1, 1); - gtk_grid_attach (GTK_GRID(bottom_grid), gtk_button_new_with_label ("zoom, +/- grid,\npresentation,\n objects styles,..."), 1, 0, 1, 2); - - GtkWidget *objects_and_situations_horizontal_pane = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); +static GtkWidget *get_frame_objects(){ GtkWidget *frame_objects = gtk_frame_new ("Objects"); // define each class of object transparence + gtk_widget_set_size_request (frame_objects, 100, H_STYLES_PANE); // < utile seulement pour la largeur min/max + return frame_objects; +} + +static GtkWidget *get_frame_situations(){ + GtkWidget *frame_situations = gtk_frame_new ("Situations"); // facilitate each situation identification + gtk_widget_set_size_request (frame_situations, 100, H_STYLES_PANE); // < utile seulement pour la largeur min/max + return frame_situations; +} + +GtkWidget *get_objects_and_situations_horizontal_pane(){ + GtkWidget *objects_and_situations_horizontal_pane = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); GtkWidget *frame_situations = gtk_frame_new ("Situations"); // facilitate each situation identification gtk_widget_set_size_request (objects_and_situations_horizontal_pane, W_GL_AREA, H_STYLES_PANE); - gtk_widget_set_size_request (frame_objects, 100, H_STYLES_PANE); // < utile seulement pour la largeur min/max gtk_widget_set_size_request (frame_situations, 100, H_STYLES_PANE); // < utile seulement pour la largeur min/max - gtk_paned_set_start_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (frame_objects)); - gtk_paned_set_end_child (GTK_PANED(objects_and_situations_horizontal_pane), GTK_WIDGET (frame_situations)); -*/ - - + 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; +} diff --git a/hot.h b/hot.h index d186824..e648700 100644 --- a/hot.h +++ b/hot.h @@ -3,63 +3,3 @@ #include "warm.h" #include "cold.h" - -/* Comment afficher l'image produite par l'actuel gem-graph-client (2024-04-30) - dans la GLArea de la space_page que je viens de créer ? - Comment la connecter aux widgets qui la modifieront ? - <> - - -#include "gg/graphics.h" provoque une erreur fatale: - GL/glu.h : Aucun fichier ou dossier de ce type -> Je dois modifier mon Makefile +/- charger cette bibliothèque ? - - -Ci-dessous les fichiers de gem-graph-client listés par : $grep -r "gl_area" : - -gg/draw.c: * Draws the current buffer to a gl_area -gg/draw.c: * @param gl_area, ptr to the gl_area widget -gg/init.c: * Initializes the buffer of a gl_area -gg/init.c: * @param gl_area, ptr to the gl_area widget -gg/init.c: * Initializes the shaders of a gl_area and link them to a program -gg/init.c: * @param gl_area, ptr to the gl_area widget -gg/graphics.c: * @param gl_area, ptr to the gl_area widget -gg/graphics.c: * Shutdowns a gl_area -gg/graphics.c: * @param gl_area, ptr to the gl_area widget -gg/GtkGLArea.c: void *gl_area; -gg/GtkGLArea.c: gtk_widget_queue_draw((GtkWidget*)(stack_index[i].gl_area)); -gg/GtkGLArea.c: GtkWidget *gl_area; -gg/GtkGLArea.c: gl_area = GTK_WIDGET(gtk_gl_area_new()); -gg/GtkGLArea.c: assert(gl_area); -gg/GtkGLArea.c: //gtk_widget_set_size_request(gl_area, 1000, 1000); -gg/GtkGLArea.c: gtk_gl_area_set_auto_render(GTK_GL_AREA(gl_area), true); -gg/GtkGLArea.c: gtk_widget_set_hexpand(gl_area, TRUE); -gg/GtkGLArea.c: gtk_widget_set_vexpand(gl_area, TRUE); -gg/GtkGLArea.c: //gtk_widget_set_halign(gl_area, GTK_ALIGN_CENTER); -gg/GtkGLArea.c: //gtk_widget_set_valign(gl_area, GTK_ALIGN_CENTER); -gg/GtkGLArea.c: g_signal_connect(GTK_GL_AREA(gl_area), -gg/GtkGLArea.c: g_signal_connect(gl_area, -gg/GtkGLArea.c: g_signal_connect(gl_area, -gg/GtkGLArea.c: stack_index[stack_index_size-1].gl_area = (void*)gl_area; -gg/GtkGLArea.c: gtk_box_append(GTK_BOX(target_widget), gl_area); -gg/GtkGLArea.c: gtk_widget_show(GTK_WIDGET(gl_area)); -gg/events.c: if(gtk_gl_area_get_error(area) != NULL) { -gg/events.c: gtk_gl_area_make_current(GTK_GL_AREA(widget)); -gg/events.c: if(gtk_gl_area_get_error(GTK_GL_AREA(widget)) != NULL) { -gg/events.c: gtk_gl_area_set_auto_render(GTK_GL_AREA(widget), true); -gg/events.c: gtk_gl_area_make_current(GTK_GL_AREA(widget)); -gg/events.c: if(gtk_gl_area_get_error(GTK_GL_AREA(widget)) != NULL) { -gg/graphics.h: * Structure describing a gl_area and its parameters, used to create a table -gg/graphics.h: * of Gem-graph client current gl_areas -gg/graphics.h: * Dynamic array of ptrs to dynamically allocated gl_area_entry -gg/graphics.h: * Initializes a gl_area -gg/graphics.h: * @param gl_area, ptr to the gl_area widget -gg/graphics.h: * Draws the current buffer to a gl_area -gg/graphics.h: * @param gl_area, ptr to the gl_area widget -gg/graphics.h: * Shutdowns a gl_area -gg/graphics.h: * @param gl_area, ptr to the gl_area widget -gg/graphics.h: * Initializes the shaders of a gl_area and link them to a program -gg/graphics.h: * @param gl_area, ptr to the gl_area widget -gg/graphics.h: * Initializes the buffer of a gl_area -gg/graphics.h: * @param gl_area, ptr to the gl_area widget -*/ diff --git a/hot.o b/hot.o index c9dfed13c00c1a287638423bdeee9f67fb8ec46e..ba91c16452d7dc2bdfbb078acb3e746e1b0617f9 100644 GIT binary patch literal 7368 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 Pi*JJQzfg%qO)~yJX*RVE diff --git a/main.o b/main.o index e7ebb20b15308419e8461af58ea62c94263f67dc..43033584441e3ba828430e33c0ff5e11dee7777e 100644 GIT binary patch delta 842 zcmV-Q1GW6%NZ?42=6_UC6nI&vcQEg zkx`bGC2fRoRnXsB?1!R=gt9D*kjNGhRM5gjK}1l?cHMLCy>G@vcX94_{?9%4+v#L45U4&Ut3D{;ILwI*1!4^OAWLy272yf3sQCNGX5aAucUphxAIqL{qz_Q9j zL&NP?9!}U*?#in8Wd1 z982bc(Z|Eu(tq&*GZA-y~^WE8K(pQQKBzVau66yzq6Suq870|za<{E= z&pxCASa1vfsZH4LFeNmh8(K>?c;G|ACUydq<(6I0YCMo46f2r6jdq97uuWxM8_nYr(|XclL_^MB^dnYm(V znyG=K@wE!cTJ1l}aBSKP+R7b6I2pPSgC#fSs~9)TBD)1jmrYEEO3-SWX?eThNhT%kUz>beitW6lw_>qmpP^=)^K7M z$C9~V_VTcfbbovR`RiO)hKysr1m_9oJW?%yOK#HgA>=_b22P~ z^>LDMtWylLxu`sySkxpONiHjRCON0zS?{BQqv3>tW8sv7=e%DEp7%A7aJ(#y$+N#X z9puT@;7x$&oxLYFqRW=l*pKTOo}8~)%%2kYDPl+wet$+dAUuay4+%d>v=eLL!>0|}RdVI9bkv5$m9T*FRs5?|{lM)2IrxN*)u=BEtxnXj*sX?+ehplFITw`}s*&`>_l{FS zS0~c=yCaNn3(co71GZSJ6@4|kwcYhB;akOp>|nMK)pa(C=f z&pwm_Sa37{sV&&=G9|R23tEacc;G|AMn8edQp-+gv7iUZfl?oA>qM!KKFaAneN5Bp Ulnu^{(DU^VzmkDKvmOLOAWB7>9{>OV diff --git a/myprogram b/myprogram index 06288f3fea2454919d22b79135aa1228f681974f..dbe03d778509d9ec147e3726f3947a35646f3156 100755 GIT binary patch literal 38192 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"); - gtk_progress_bar_set_show_text (buffer, TRUE); - gtk_box_append (controls_box, GTK_WIDGET(buffer));//gtk_button_new_with_label ("---- buffer ----")); - - GtkBox *XYZ_box = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); // spacing = 2 - // GtkWidget *scale_X = gtk_scale_button_new (0, 360, 10, NULL); < à étudier - // (double min, double max, double step, const char** icons) - GtkAdjustment *X_adjust = gtk_adjustment_new (0, 0, 380, 1, 0, 0); - GtkAdjustment *Y_adjust = gtk_adjustment_new (0, 0, 380, 1, 0, 0); - GtkAdjustment *Z_adjust = gtk_adjustment_new (0, 0, 380, 1, 0, 0); - GtkWidget *scroll_X = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, X_adjust); - GtkWidget *scroll_Y = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, Y_adjust); - GtkWidget *scroll_Z = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, Z_adjust); - - gtk_box_append (XYZ_box, scroll_X); - gtk_box_append (XYZ_box, scroll_Y); - gtk_box_append (XYZ_box, scroll_Z); - - GtkWidget *bottom_grid = gtk_grid_new(); - gtk_grid_attach (GTK_GRID(bottom_grid), GTK_WIDGET(controls_box), 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(bottom_grid), gtk_button_new_with_label ("Objects / Situations (transparences, styles)"), 0, 1, 1, 1); - gtk_grid_attach (GTK_GRID(bottom_grid), gtk_button_new_with_label ("zoom, +/- grid,\npresentation,\nstyles,..."), 1, 0, 1, 2); - - GtkWidget *space_grid = gtk_grid_new(); - gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(get_a_space_test_image()), 0, 0, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(XYZ_box), 1, 0, 1, 1); - gtk_grid_attach (GTK_GRID(space_grid), GTK_WIDGET(bottom_grid), 0, 1, 2, 1); // ?! échec x_size -// gtk_grid_attach (GTK_GRID(space_grid), gtk_button_new_with_label ("?"), 1, 1, 1, 1); - - return space_grid; -} - - - - - - - - - - - - - - - - - - - - -/* void activate (GtkApplication *app, gpointer user_data) { - GtkWindow *window = GTK_WINDOW (gtk_application_window_new (app)); - window_bar (window, "window"); - GtkWidget *grid = gtk_grid_new(); - gtk_window_set_child (window, grid); - - click_print_do (NULL, grid, "(I)", "n°1\n", 0,0,1,1); - click_print_do (NULL, grid, "(II)", "n°2\n", 1,0,1,1); - click_print_do (window, grid, "Quit", "bye !\n", 2,0,1,1); - - GtkWidget *grid_2 = gtk_grid_new(); - GtkWidget* notebook = gtk_notebook_new (); - gtk_grid_attach (GTK_GRID (grid), notebook, 0, 3, 1, 1); - gtk_notebook_append_page (GTK_NOTEBOOK(notebook), grid_2, gtk_label_new ("hello !")); - gtk_notebook_append_page (GTK_NOTEBOOK(notebook), gtk_button_new_with_label ("me too !"), NULL); - gtk_grid_attach (GTK_GRID (grid_2), gtk_button_new_with_label ("here am I !"), 0, 0, 1, 1); - - GtkWidget *box_3 = gtk_box_new (0, 0); - gtk_box_append (GTK_BOX (box_3), gtk_button_new_with_label ("30")); - gtk_box_append (GTK_BOX (box_3), gtk_button_new_with_label ("31")); - gtk_grid_attach (GTK_GRID (grid), box_3, 0, 2, 1, 1); - - GtkWidget *grid_3 = gtk_grid_new(); - GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); - GtkWidget *frame1 = gtk_frame_new ("hello ?"); - GtkWidget *frame2 = gtk_frame_new ("it's me !"); - gtk_frame_set_child ( GTK_FRAME(frame2), grid_3); - gtk_paned_set_start_child (GTK_PANED(hpaned), GTK_WIDGET (frame1)); - gtk_paned_set_end_child (GTK_PANED(hpaned), GTK_WIDGET (frame2)); - gtk_widget_set_size_request (hpaned, 400, 200); -// gtk_widget_set_size_request (frame1, 50, 100); < utile seulement pour la largeur min/max -// gtk_widget_set_size_request (frame2, 50, 100); - gtk_grid_attach (GTK_GRID (grid), hpaned, 0, 4, 3, 1); - gtk_grid_attach (GTK_GRID (grid_3), gtk_button_new_with_label ("in the right pane"), 0, 0, 1, 1); - - gtk_window_present (GTK_WINDOW (window)); -} - - - - - - - - - - - - -* -static void activate_old (GtkApplication *app, gpointer user_data) { - GtkWindow *window = GTK_WINDOW (gtk_application_window_new (app)); - window_bar (window, "window"); - GtkWidget *grid = gtk_grid_new(); - gtk_window_set_child (window, grid); - - click_print_do (NULL, grid, "(I)", "n°1\n", 0,0,1,1); - click_print_do (NULL, grid, "(II)", "n°2\n", 1,0,1,1); - click_print_do (window, grid, "Quit", "bye !\n", 2,0,1,1); - - GtkWidget *switcher = gtk_stack_switcher_new(); -// GtkWidget *sidebar = gtk_stack_sidebar_new(); - gtk_grid_attach (GTK_GRID (grid), switcher, 0, 1, 3, 1); - gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_VERTICAL); - gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_HORIZONTAL); - GtkStack *stack = GTK_STACK (gtk_stack_new()); - gtk_stack_switcher_set_stack (GTK_STACK_SWITCHER (switcher), stack); -// gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), stack); - - GtkWidget *box_0 = gtk_box_new (0, 0); - GtkWidget *box_1 = gtk_box_new (0, 0); - GtkWidget *box_2 = gtk_box_new (0, 0); - gtk_stack_add_titled (stack, box_0, "n°0", "A"); - gtk_stack_add_titled (stack, box_1, "n°1", "B"); - gtk_stack_add_titled (stack, box_2, "n°2", "C"); - GtkSelectionModel *stack_selection_model = gtk_stack_get_pages (stack); - gtk_selection_model_select_item (stack_selection_model, 1, 1); - printf("selected page name is [%s] \n", gtk_stack_get_visible_child_name (stack)); - GtkWidget *grid_3 = gtk_grid_new(); - gtk_grid_attach (GTK_GRID (grid_3), gtk_button_new_with_label ("0,0 1,1"), 0, 0, 1, 1); - gtk_stack_add_child (stack, grid_3); -// gtk_stack_page_set_visible (GTK_STACK_PAGE(stack_selection_model_get_item()), TRUE); - - - GtkWidget *box_3 = gtk_box_new (0, 0); - gtk_box_append (GTK_BOX (box_3), gtk_button_new_with_label ("30")); - gtk_box_append (GTK_BOX (box_3), gtk_button_new_with_label ("31")); - gtk_grid_attach (GTK_GRID (grid), box_3, 0, 2, 1, 1); - - GtkWidget *grid_2 = gtk_grid_new(); - GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); - GtkWidget *frame1 = gtk_frame_new ("hello ?"); - GtkWidget *frame2 = gtk_frame_new ("it's me !"); - gtk_frame_set_child ( GTK_FRAME(frame2), grid_2); - gtk_paned_set_start_child (GTK_PANED(hpaned), GTK_WIDGET (frame1)); - gtk_paned_set_end_child (GTK_PANED(hpaned), GTK_WIDGET (frame2)); - gtk_widget_set_size_request (hpaned, 400, 200); -// gtk_widget_set_size_request (frame1, 50, 100); < utile seulement pour la largeur min/max -// gtk_widget_set_size_request (frame2, 50, 100); - gtk_grid_attach (GTK_GRID (grid), hpaned, 0, 3, 3, 1); - gtk_grid_attach (GTK_GRID (grid_2), gtk_button_new_with_label ("in the right pane"), 0, 0, 1, 1); - - gtk_window_present (GTK_WINDOW (window)); -} -*/ diff --git a/warm.h b/warm.h index d9eabd3..e40b345 100644 --- a/warm.h +++ b/warm.h @@ -15,62 +15,6 @@ #include "cold.h" -//GtkScrolledWindow *get_scrolled_gl_area(); -GtkWidget *get_space_page_new_2024_04_30(); // sécurité 2024_04_30 1ère version +// https://blog.gtk.org/2020/09/08/on-list-models/ < TODO +// https://stackoverflow.com/questions/20122232/gtklistc-code-how-to-get-the-selection-of-a-gtklist -/* - * https://blog.gtk.org/2020/09/08/on-list-models/ < TODO - * https://stackoverflow.com/questions/20122232/gtklistc-code-how-to-get-the-selection-of-a-gtklist - * - GtkWidget *switcher = gtk_stack_switcher_new(); - GtkWidget *sidebar = gtk_stack_sidebar_new(); - gtk_grid_attach (GTK_GRID (grid), switcher, 0, 1, 3, 1); - gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_VERTICAL); - gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_HORIZONTAL); - GtkStack *stack = GTK_STACK (gtk_stack_new()); - gtk_stack_switcher_set_stack (GTK_STACK_SWITCHER (switcher), stack); - gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), stack); - - GtkWidget *page_0 = gtk_paned_new(GTK_ORIENTATION_VERTICAL); - GtkWidget *page_1 = gtk_paned_new(GTK_ORIENTATION_VERTICAL); - GtkWidget *box_0 = gtk_box_new (0, 0); - GtkWidget *box_1 = gtk_box_new (0, 0); - GtkWidget *box_2 = gtk_box_new (0, 0); - GtkWidget *box_3 = gtk_box_new (0, 0); - gtk_box_append (GTK_BOX (box_0), gtk_button_new_with_label ("00")); - gtk_box_append (GTK_BOX (box_0), gtk_button_new_with_label ("01")); - gtk_box_append (GTK_BOX (box_1), gtk_button_new_with_label ("10")); - gtk_box_append (GTK_BOX (box_1), gtk_button_new_with_label ("11")); - gtk_box_append (GTK_BOX (box_2), gtk_button_new_with_label ("20")); - gtk_box_append (GTK_BOX (box_2), gtk_button_new_with_label ("21")); - gtk_box_append (GTK_BOX (box_3), gtk_button_new_with_label ("30")); - gtk_box_append (GTK_BOX (box_3), gtk_button_new_with_label ("31")); - gtk_stack_add_titled (stack, box_0, "n°0", "A"); - gtk_stack_add_titled (stack, box_1, "n°1", "B"); - gtk_stack_add_titled (stack, box_2, "n°2", "C"); - gtk_grid_attach (GTK_GRID (grid), box_3, 0, 2, 1, 1); - GtkWidget* combo = gtk_combo_box_new_with_entry (void); - gtk_grid_attach (GTK_GRID (grid), combo, 0, 2, 2, 1); - -// GtkStackPage *page_2 = gtk_stack_add_titled (stack, box_1, "any name", "C"); -// gtk_stack_page_set_name (page_2, "n°2"); - - GtkSelectionModel *stack_selection_model = gtk_stack_get_pages (stack); - gtk_selection_model_select_item (stack_selection_model, 1, 1); - - printf("selected page name is [%s] (how do I get its title ?)\n", - gtk_stack_get_visible_child_name (stack)); - -// gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_CROSSFADE); -) - - * Toujours pas moyen de voir les stack pages ! -// gtk_stack_page_set_visible (GTK_STACK_PAGE (gtk_stack_get_visible_child (stack)), TRUE); -// gtk_stack_page_set_visible GTK_WIDGET(gtk_stack_get_visible_child (stack)), TRUE); -// gtk_stack_page_set_visible ( stack_selection_model, TRUE); -// gboolean gtk_selection_model_is_selected (GtkSelectionModel* model, guint position); -// gtk_selection_model_get_selected_item() - * - * - * - */ diff --git a/warm.o b/warm.o index 360a7fefb5aa2e24ccce218ef427e68133d7cdf5..4e5b505bc13f0113ac648e74e83b92045e28ddef 100644 GIT binary patch literal 2704 zcmbVNe@q*76#rgZl&w(M(1}i^Q@0gIk4`eCbIx-pgmuudXy!s9y~4p3X-i6h5+xIV zBu=+TjM*@S5u6q~ z^R~OU9#WS0VkcfHU6Gs9@aj z#_t1v%zO6?%(hlJ)1JYTJMOLi_3`9A-8I_C z8Ig!8BMY-1)q3owUj4M(d)wg9=D@{YzRpi5-+k2>TkIS5FfEIHuM3n-O!-?=$+OA2 zspPi0$@3e1KlGH3SDxz$cuU78{cjbhwPg?1*6lA(mW{vOQ!u}#HvGt$gedI0|4~s> zRkg|Osi}Xa)V;n!eMt4u`VP=;xbS#@7hZ)jh8&ARnEPN}*64SL`Tt}du^l{CVi&hq z(Gb7n2E6kIeBSkZj~)xF&2VrsvJ{lv6qRq{@!9tiUT)&e-K~)LTM6G~;>}OF%EaUP zcM|qUJV8+|@o*Hj*z7@!JURl=znj@0R$>go6_QFX1+c=Y5Pw{5;_< ziGP~#ixS^RnD-ptSLU;jaolH$$CwJjWfI>+Sg4)7;kX_G9gk)79=75}A}-VxJ+2Ei z)Y&Q2n9;7QEk>xTt!ZzhH4478t%pJ}qx%}S9@8Uj#T$1@Ktqrzl`oHZx<$`EPQ* z6t|W>CPfm@by>ed`BIqJMENq$dCVUJ1K*1rt`Wie$MM`hV_Z+pMPCPzqZGIdwAK5^ ecOuUorW6xtRS*3vxUOYB{=`5|WmNVqKmY%~0{kQZ literal 11272 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 NJ{H=qLIe;d^*?SqAKm}}