Re: set custom entry background?
- From: Allin Cottrell <cottrell wfu edu>
- To: Stefan Salewski <mail ssalewski de>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: set custom entry background?
- Date: Mon, 16 Nov 2015 14:41:58 -0500 (EST)
On Mon, 16 Nov 2015, Stefan Salewski wrote:
On Sun, 2015-11-15 at 19:30 -0500, Allin Cottrell wrote:
But how can I "undo" this? (I mean, make it so that the background
color for the selected state reverts to what it was before I messed
with it, for subsequent selections.) That's trivial with the old
APIs but I have no idea how it can be done now.
You may see
https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-get-st
yle-context
https://developer.gnome.org/gtk3/stable/GtkStyleContext.html#gtk-style-c
ontext-remove-provider
No time to test it, sorry.
Ah, this works, thanks! I somehow missed the "remove" API.
Here's the working code:
void normalize_style (GtkWidget *w, gpointer p)
{
GtkStyleContext *context;
context = gtk_widget_get_style_context(w);
gtk_style_context_remove_provider(context,
GTK_STYLE_PROVIDER(p));
}
void entry_alert (GtkWidget *entry)
{
GtkCssProvider *prov;
GtkStyleContext *context;
const gchar *snippet =
"GtkEntry:selected {background-color: #ff0000;}";
prov = gtk_css_provider_new();
gtk_css_provider_load_from_data(prov, snippet, -1, NULL);
context = gtk_widget_get_style_context(entry);
gtk_style_context_add_provider(context, GTK_STYLE_PROVIDER(prov),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
gtk_widget_grab_focus(entry);
gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1);
g_signal_connect(G_OBJECT(entry), "changed",
G_CALLBACK(normalize_style), prov);
}
Allin Cottrell
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]