34 lines
1.4 KiB
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");
|
||
|
}
|