From 905cfcaf01637ce6d2b82b40edbff0cae2591d12 Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Thu, 5 Mar 2026 17:22:57 +0100 Subject: [PATCH] icon embedded --- resources/resources.xml | 1 + src/main.cpp | 2 ++ src/mainwindow.cpp | 14 ++++++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/resources/resources.xml b/resources/resources.xml index e554df8..9847217 100644 --- a/resources/resources.xml +++ b/resources/resources.xml @@ -2,6 +2,7 @@ nvme-monitor.svg + nvme-monitor.svg style.css diff --git a/src/main.cpp b/src/main.cpp index 27711d2..c07f6ad 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,6 +17,8 @@ GMainLoop *gMainLoop = nullptr; int main(int argc, char *argv[]) { gtk_init(); + g_set_prgname("nvme-monitor"); + g_set_application_name("Temperature Monitor"); // Register resources containing the application icon GResource *resource = resources_get_resource(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 45385a1..3b09613 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -60,11 +60,18 @@ void MainWindow::setupUI() // Load CSS GtkCssProvider *provider = gtk_css_provider_new(); gtk_css_provider_load_from_resource(provider, "/org/kamma/nvme-monitor/style.css"); - gtk_style_context_add_provider_for_display(gdk_display_get_default(), + GdkDisplay *display = gdk_display_get_default(); + gtk_style_context_add_provider_for_display(display, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref(provider); + // Make embedded icon resources resolvable by icon name. + if (display) { + GtkIconTheme *iconTheme = gtk_icon_theme_get_for_display(display); + gtk_icon_theme_add_resource_path(iconTheme, "/org/kamma/nvme-monitor/icons"); + } + window = gtk_window_new(); gtk_window_set_title(GTK_WINDOW(window), "Temperature Monitor"); @@ -80,7 +87,7 @@ void MainWindow::setupUI() g_error_free(error); } - // Set icon name for fallback/system icon theme + // Set icon name from embedded resources. gtk_window_set_icon_name(GTK_WINDOW(window), "nvme-monitor"); gtk_window_set_default_size(GTK_WINDOW(window), 1200, 700); @@ -157,6 +164,7 @@ void MainWindow::setupUI() gboolean MainWindow::onDeleteWindow(GtkWidget *widget, gpointer userData) { + (void)widget; MainWindow *self = static_cast(userData); self->saveWindowState(); delete self; @@ -205,6 +213,7 @@ void MainWindow::onClearButtonClicked(GtkButton *button, gpointer userData) void MainWindow::onQuitButtonClicked(GtkButton *button, gpointer userData) { + (void)button; MainWindow *self = static_cast(userData); self->saveWindowState(); @@ -381,6 +390,7 @@ void MainWindow::updateLegend() void MainWindow::show() { gtk_widget_set_visible(window, TRUE); + gtk_window_present(GTK_WINDOW(window)); } void MainWindow::onWindowMap(GtkWidget *widget, gpointer userData)