96 lines
3.2 KiB
C
96 lines
3.2 KiB
C
#include <gtk/gtk.h>
|
|
#include "hot.h"
|
|
#include "warm.h"
|
|
#include "cold.h"
|
|
|
|
|
|
static void activate (GtkApplication *app, gpointer user_data) {
|
|
GtkWindow *window = GTK_WINDOW (gtk_application_window_new (app));
|
|
GtkWidget *switcher = gtk_stack_switcher_new();
|
|
// GtkWidget *sidebar = gtk_stack_sidebar_new();
|
|
GtkStack *stack = GTK_STACK (gtk_stack_new());
|
|
GtkWidget *page_0 = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
|
|
GtkWidget *page_1 = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
|
|
GtkWidget *grid = gtk_grid_new();
|
|
GtkWidget *box_1 = gtk_box_new (0, 6); // 6 = spacing
|
|
|
|
window_bar (window, "window");
|
|
gtk_window_set_child (window, grid);
|
|
button_0 (window, grid, 1,0,1,1);
|
|
button_1 (grid, 0,0,1,1);
|
|
|
|
gtk_stack_add_titled (stack, page_0, "n°0", "A");
|
|
gtk_stack_add_titled (stack, page_1, "n°1", "B");
|
|
GtkStackPage *page_2 = gtk_stack_add_titled (stack, box_1, "any name", "C");
|
|
gtk_stack_page_set_name (page_2, "n°2");
|
|
|
|
// gtk_grid_attach (GTK_GRID (grid_1), button_5, 0, 0, 1, 1);
|
|
|
|
gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_VERTICAL);
|
|
gtk_orientable_set_orientation (GTK_ORIENTABLE (switcher), GTK_ORIENTATION_HORIZONTAL);
|
|
|
|
gtk_stack_switcher_set_stack (GTK_STACK_SWITCHER (switcher), stack);
|
|
// gtk_stack_sidebar_set_stack (GTK_STACK_SIDEBAR (sidebar), stack);
|
|
|
|
GtkSelectionModel *stack_selection_model = gtk_stack_get_pages (stack);
|
|
gtk_selection_model_select_item (stack_selection_model, 2, 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);
|
|
|
|
gtk_grid_attach (GTK_GRID (grid), switcher, 0, 2, 2, 1);
|
|
gtk_window_present (GTK_WINDOW (window));
|
|
}
|
|
|
|
int
|
|
main (int argc,
|
|
char **argv)
|
|
{
|
|
GtkApplication *app;
|
|
int status;
|
|
|
|
app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
|
|
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
|
|
status = g_application_run (G_APPLICATION (app), argc, argv);
|
|
g_object_unref (app);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* GtkBox GtkGrid GtkRevealer GtkStack
|
|
* GtkOverlay GtkPaned GtkExpander GtkFixed */
|
|
|
|
/* GtkBox
|
|
* int spacing = 8;
|
|
* box = gtk_box_new (0, spacing);
|
|
* 0 = GTK_ORIENTATION_HORIZONTAL, 1 = GTK_ORIENTATION_VERTICAL
|
|
* gtk_widget_set_halign (box, GTK_ALIGN_FILL);
|
|
* gtk_widget_set_valign (box, GTK_ALIGN_CENTER); * START CENTER END FILL *
|
|
* gtk_window_set_child (GTK_WINDOW (window), box);
|
|
* gtk_box_append (GTK_BOX (box), button); */
|
|
|
|
/* grid = gtk_grid_new ();
|
|
gtk_window_set_child (GTK_WINDOW (window), grid);
|
|
button = gtk_button_new_with_label (" I "); n fois
|
|
gtk_grid_attach (GTK_GRID (grid), button, 0, 0, 1, 1); n fois */
|
|
|
|
|
|
|
|
|
|
|
|
/* TODO or NOT TODO
|
|
*
|
|
* GtkRevealer *revealer = gtk_revealer_new();
|
|
* gtk_revealer_set_child (GTK_ ? (revealer), box);
|
|
* gtk_revealer_set_transition_type (revealer, GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);
|
|
*
|
|
*/
|
|
|
|
// GtkWidget *overlay = gtk_overlay_new();
|
|
// gtk_overlay_set_buildable_id (GTK_BUILDABLE(overlay), "overlay id");
|
|
// printf("overlay %s\n", gtk_buildable_get_buildable_id (GTK_BUILDABLE(overlay)));
|
|
|
|
// how do I attach a widget to a page ?
|
|
|