static void gtk_level_bar_snapshot_fill_continuous (GtkLevelBar *self, GtkSnapshot *snapshot) { gboolean inverted; inverted = gtk_level_bar_get_real_inverted (self); /* render the empty (unfilled) part */ gtk_css_gadget_snapshot (self->priv->block_gadget[inverted ? 0 : 1], snapshot); /* now render the filled part on top of it */ gtk_css_gadget_snapshot (self->priv->block_gadget[inverted ? 1 : 0], snapshot); }
static gboolean gtk_switch_snapshot_trough (GtkCssGadget *gadget, GtkSnapshot *snapshot, int x, int y, int width, int height, gpointer data) { GtkWidget *widget = gtk_css_gadget_get_owner (gadget); GtkSwitchPrivate *priv = GTK_SWITCH (widget)->priv; GtkStyleContext *context = gtk_widget_get_style_context (widget); PangoRectangle rect; gint label_x, label_y; pango_layout_get_pixel_extents (priv->on_layout, NULL, &rect); label_x = x + ((width / 2) - rect.width) / 2; label_y = y + (height - rect.height) / 2; gtk_snapshot_render_layout (snapshot, context, label_x, label_y, priv->on_layout); pango_layout_get_pixel_extents (priv->off_layout, NULL, &rect); label_x = x + (width / 2) + ((width / 2) - rect.width) / 2; label_y = y + (height - rect.height) / 2; gtk_snapshot_render_layout (snapshot, context, label_x, label_y, priv->off_layout); gtk_css_gadget_snapshot (priv->slider_gadget, snapshot); return FALSE; }
static void gtk_level_bar_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { GtkLevelBar *self = GTK_LEVEL_BAR (widget); gtk_css_gadget_snapshot (self->priv->trough_gadget, snapshot); }
static void gtk_level_bar_snapshot_fill_discrete (GtkLevelBar *self, GtkSnapshot *snapshot) { gint num_blocks, i; num_blocks = gtk_level_bar_get_num_blocks (self); for (i = 0; i < num_blocks; i++) gtk_css_gadget_snapshot (self->priv->block_gadget[i], snapshot); }
static void gtk_switch_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { gtk_css_gadget_snapshot (GTK_SWITCH (widget)->priv->gadget, snapshot); }
static void gtk_button_snapshot (GtkWidget *widget, GtkSnapshot *snapshot) { gtk_css_gadget_snapshot (GTK_BUTTON (widget)->priv->gadget, snapshot); }