Add compatibility code for gtk_widget_override_color()

This commit is contained in:
Pierre Pronchery 2018-02-05 01:26:58 +01:00
parent 29dc10f363
commit a633870c55
2 changed files with 50 additions and 1 deletions

View File

@ -119,7 +119,6 @@ GtkWidget * gtk_paned_new(GtkOrientation orientation);
GtkWidget * gtk_scale_new(GtkOrientation orientation,
GtkAdjustment * adjustment);
GtkWidget * gtk_scale_new_with_range(GtkOrientation orientation,
gdouble min, gdouble max, gdouble step);
@ -133,6 +132,8 @@ GtkAllocation gtk_widget_get_allocation(GtkWidget * widget);
void gtk_widget_set_tooltip_text(GtkWidget * widget, const gchar * text);
# endif
void gtk_widget_override_color(GtkWidget * widget, GtkStateFlags state,
const GdkRGBA * color);
void gtk_widget_override_font(GtkWidget * widget,
const PangoFontDescription * desc);
# endif

View File

@ -156,6 +156,54 @@ void gtk_widget_set_tooltip_text(GtkWidget * widget, const gchar * text)
# endif
/* gtk_widget_override_color */
void gtk_widget_override_color(GtkWidget * widget, GtkStateFlags state,
const GdkRGBA * color)
{
GtkStateType s;
GdkColor c;
GdkColor * p;
switch(state)
{
case GTK_STATE_FLAG_NORMAL:
s = GTK_STATE_NORMAL;
break;
case GTK_STATE_FLAG_ACTIVE:
s = GTK_STATE_ACTIVE;
break;
case GTK_STATE_FLAG_PRELIGHT:
s = GTK_STATE_PRELIGHT;
break;
case GTK_STATE_FLAG_SELECTED:
s = GTK_STATE_SELECTED;
break;
case GTK_STATE_FLAG_INSENSITIVE:
s = GTK_STATE_INSENSITIVE;
break;
case GTK_STATE_FLAG_INCONSISTENT:
s = GTK_STATE_INCONSISTENT;
break;
case GTK_STATE_FLAG_FOCUSED:
s = GTK_STATE_FOCUSED;
break;
default:
/* XXX ignore */
return;
}
if(color != NULL)
{
c.red = (double)color->red / 65535.0;
c.green = (double)color->green / 65535.0;
c.blue = (double)color->blue / 65535.0;
p = &c;
}
else
p = NULL;
gtk_widget_modify_fg(widget, s, p);
}
/* gtk_widget_override_font */
void gtk_widget_override_font(GtkWidget * widget,
const PangoFontDescription * desc)