36 GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
50 GtkAllocation allocation;
51 gtk_widget_get_allocation(widget, &allocation);
53 GtkStateFlags
state = gtk_widget_get_state_flags(widget);
56 GtkStyleContext *context = gtk_widget_get_style_context(widget);
57 gtk_style_context_get_color(context,
state, &fg_color);
59 gdk_cairo_set_source_rgba(cr, &fg_color);
63 DTGTK_ICON(widget)->icon(cr, 0, 0, allocation.width, allocation.height,
DTGTK_ICON(widget)->icon_flags,
74 gtk_event_box_set_visible_window(GTK_EVENT_BOX(icon),
FALSE);
78 gtk_widget_set_name(GTK_WIDGET(icon),
"dt-icon");
84 static GType dtgtk_icon_type = 0;
87 static const GTypeInfo dtgtk_icon_info = {
94 dtgtk_icon_type = g_type_register_static(GTK_TYPE_EVENT_BOX,
"GtkDarktableIcon", &dtgtk_icon_info, 0);
96 return dtgtk_icon_type;
105 gtk_widget_queue_draw(icon);
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
void(* DTGTKCairoPaintIconFunc)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
static gboolean _icon_draw(GtkWidget *widget, cairo_t *cr)
static void _icon_init(GtkDarktableIcon *icon)
GtkWidget * dtgtk_icon_new(DTGTKCairoPaintIconFunc paint, gint paintflags, void *paintdata)
static void _icon_class_init(GtkDarktableIconClass *klass)
GType dtgtk_icon_get_type()
void dtgtk_icon_set_paint(GtkWidget *icon, DTGTKCairoPaintIconFunc paint, gint paintflags, void *paintdata)
struct _GtkDarktableIcon GtkDarktableIcon
struct _GtkDarktableIconClass GtkDarktableIconClass
#define DTGTK_IS_ICON(obj)
struct _GtkWidget GtkWidget
const float uint32_t state[4]
DTGTKCairoPaintIconFunc icon