feat(sidebar): add entity navigation

This commit is contained in:
grayTerminal-sh 2026-07-22 11:03:30 +02:00
parent ab6621e95f
commit 2dad97ddfb

View file

@ -58,6 +58,7 @@ struct Sidebar
GtkWidget *root_widget; GtkWidget *root_widget;
GtkWidget *title_label; GtkWidget *title_label;
GtkWidget *page_switcher_scrolled_window;
GtkWidget *page_switcher; GtkWidget *page_switcher;
GtkWidget *stack; GtkWidget *stack;
@ -353,7 +354,11 @@ Sidebar *sidebar_new(void)
sidebar->page_switcher = sidebar->page_switcher =
gtk_stack_switcher_new(); gtk_stack_switcher_new();
if (sidebar->page_switcher == NULL) sidebar->page_switcher_scrolled_window =
gtk_scrolled_window_new();
if (sidebar->page_switcher == NULL ||
sidebar->page_switcher_scrolled_window == NULL)
{ {
sidebar_free( sidebar_free(
sidebar sidebar
@ -372,27 +377,75 @@ Sidebar *sidebar_new(void)
); );
gtk_widget_set_hexpand( gtk_widget_set_hexpand(
sidebar->page_switcher, sidebar->page_switcher_scrolled_window,
TRUE TRUE
); );
gtk_widget_set_halign( gtk_widget_set_halign(
sidebar->page_switcher, sidebar->page_switcher,
GTK_ALIGN_CENTER GTK_ALIGN_START
);
gtk_widget_set_margin_start(
sidebar->page_switcher,
8
);
gtk_widget_set_margin_end(
sidebar->page_switcher,
8
); );
gtk_widget_set_margin_bottom( gtk_widget_set_margin_bottom(
sidebar->page_switcher, sidebar->page_switcher,
12
);
gtk_scrolled_window_set_min_content_height(
GTK_SCROLLED_WINDOW(
sidebar->page_switcher_scrolled_window
),
48
);
gtk_scrolled_window_set_policy(
GTK_SCROLLED_WINDOW(
sidebar->page_switcher_scrolled_window
),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_NEVER
);
gtk_scrolled_window_set_has_frame(
GTK_SCROLLED_WINDOW(
sidebar->page_switcher_scrolled_window
),
FALSE
);
gtk_scrolled_window_set_overlay_scrolling(
GTK_SCROLLED_WINDOW(
sidebar->page_switcher_scrolled_window
),
FALSE
);
gtk_scrolled_window_set_placement(
GTK_SCROLLED_WINDOW(
sidebar->page_switcher_scrolled_window
),
GTK_CORNER_TOP_LEFT
);
gtk_scrolled_window_set_child(
GTK_SCROLLED_WINDOW(
sidebar->page_switcher_scrolled_window
),
sidebar->page_switcher
);
gtk_widget_set_margin_start(
sidebar->page_switcher_scrolled_window,
8
);
gtk_widget_set_margin_end(
sidebar->page_switcher_scrolled_window,
8
);
gtk_widget_set_margin_bottom(
sidebar->page_switcher_scrolled_window,
8 8
); );
@ -400,7 +453,7 @@ Sidebar *sidebar_new(void)
GTK_BOX( GTK_BOX(
sidebar->root_widget sidebar->root_widget
), ),
sidebar->page_switcher sidebar->page_switcher_scrolled_window
); );
/* /*