From 0faab21af39a516fd7162632111e65c670d383e8 Mon Sep 17 00:00:00 2001 From: daleclack Date: Sat, 30 Mar 2024 23:11:02 +0800 Subject: [PATCH] Update title bar --- Gtk4_Reset/src/mine_app/MineSweeper.cpp | 11 +++++++---- Gtk4_Reset/src/ui/MyTitleBar.cpp | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Gtk4_Reset/src/mine_app/MineSweeper.cpp b/Gtk4_Reset/src/mine_app/MineSweeper.cpp index 0148607..2ca8409 100644 --- a/Gtk4_Reset/src/mine_app/MineSweeper.cpp +++ b/Gtk4_Reset/src/mine_app/MineSweeper.cpp @@ -3,6 +3,7 @@ #include "InputBox.h" #include #include +#include "MyTitleBar.h" // The status of the minesweeper game typedef enum @@ -18,7 +19,8 @@ struct _MineSweeper GtkApplicationWindow parent_instance; // Header widgets - GtkWidget *header, *menu_btn; + MyTitleBar *title_bar; + GtkWidget *menu_btn; GtkBuilder *menu_builder; // Child widgets @@ -326,8 +328,8 @@ static void mine_sweeper_init(MineSweeper *self) // Initalize window gtk_window_set_title(GTK_WINDOW(self), "MineSweeper"); gtk_window_set_icon_name(GTK_WINDOW(self), "mine_app"); - self->header = gtk_header_bar_new(); - gtk_window_set_titlebar(GTK_WINDOW(self), self->header); + self->title_bar = my_titlebar_new(); + my_titlebar_set_window(self->title_bar, self); // Add action for menu GActionEntry entries[] = @@ -342,7 +344,8 @@ static void mine_sweeper_init(MineSweeper *self) // Create Menu and button self->menu_btn = gtk_menu_button_new(); gtk_menu_button_set_icon_name(GTK_MENU_BUTTON(self->menu_btn), "open-menu"); - gtk_header_bar_pack_end(GTK_HEADER_BAR(self->header), self->menu_btn); + my_titlebar_pack_end(self->title_bar, self->menu_btn); + // gtk_header_bar_pack_end(GTK_HEADER_BAR(self->header), self->menu_btn); // Create Menu self->menu_builder = gtk_builder_new_from_resource("/org/gtk/daleclack/mine_menu.xml"); diff --git a/Gtk4_Reset/src/ui/MyTitleBar.cpp b/Gtk4_Reset/src/ui/MyTitleBar.cpp index 44286d5..f2dcddc 100644 --- a/Gtk4_Reset/src/ui/MyTitleBar.cpp +++ b/Gtk4_Reset/src/ui/MyTitleBar.cpp @@ -28,6 +28,8 @@ void _my_titlebar_set_window(MyTitleBar *self, GtkWidget *window) void _my_titlebar_pack_end(MyTitleBar *self, GtkWidget *widget) { + gtk_widget_set_css_classes(widget, NULL); + gtk_widget_add_css_class(widget, "ctrl_btn"); gtk_header_bar_pack_end(GTK_HEADER_BAR(self->header), widget); }