Calibration_Stand/ui/Src/button_styles.c

34 lines
1.4 KiB
C

#include "../Inc/button_styles.h"
GtkCssProvider *css_provider = NULL;
// Функция для установки цвета кнопки
void set_button_color(GtkWidget *button, const char *color) {
if (css_provider == NULL) {
css_provider = gtk_css_provider_new();
GtkStyleContext *context = gtk_widget_get_style_context(button);
gtk_style_context_add_provider(context,
GTK_STYLE_PROVIDER(css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
// Устанавливаем уникальное имя для кнопки
gtk_widget_set_name(button, "colorButton");
}
// Создаём CSS-строку для установки цвета
char css[256];
snprintf(css, sizeof(css), "#colorButton { background-color: %s; }", color);
gtk_css_provider_load_from_data(css_provider, css, -1, NULL);
}
// Метод для установки красного цвета кнопки
void set_button_color_red(GtkWidget *button) {
set_button_color(button, "red");
}
// Метод для установки зелёного цвета кнопки
void set_button_color_green(GtkWidget *button) {
set_button_color(button, "green");
}
// Метод для установки синего цвета кнопки
void set_button_color_white(GtkWidget *button) {
set_button_color(button, "white");
}