Доброго времени суток.
Дамы и господа, леди и джентельмены, может кто-нибудь подскажет или направит куда (лишь бы не послал)...
есть виджет ввода:
GtkWidget* myEntry = gtk_entry_new();
g_signal_connect(myEntry,"key-release-event",G_CALLBACK(check),NULL);
Нужно сделать валидацию, и изменить фон/цвет если введенное значение не соответствует. Пробовал так(далее функция check):
GtkStyleContext *myStyle = gtk_widget_get_style_context(GTK_WIDGET(entryDate));
GdkRGBA fuck = { 1.0, 0.0, 0.0, 0.0 };
g_object_set(GTK_WIDGET(entryDate), GTK_STYLE_PROPERTY_BACKGROUND_COLOR, fuck);
и так:
GtkStyleContext *myStyle = gtk_widget_get_style_context(entryDate);
GtkCssProvider *myCss = gtk_css_provider_new();
gtk_css_provider_load_from_path(myCss,"entryDate.css", NULL);
gtk_style_context_add_provider(myStyle,GTK_STYLE_PROVIDER(myCss), GTK_STYLE_PROVIDER_PRIORITY_USER);
entryDate.css:
.entry {
background: red;
border-width: 3px;
border-color: red;
}
но эти приемы, как я понимаю, требуют отрисосывать виджеты вновь, а сделать иначе возможно?