static void gtk_level_bar_draw_fill (GtkLevelBar *self, cairo_t *cr) { GtkWidget *widget = GTK_WIDGET (self); GtkBorder trough_borders; gboolean inverted; cairo_rectangle_int_t fill_area; gtk_level_bar_get_borders (self, &trough_borders); fill_area.x = trough_borders.left; fill_area.y = trough_borders.top; fill_area.width = gtk_widget_get_allocated_width (widget) - trough_borders.left - trough_borders.right; fill_area.height = gtk_widget_get_allocated_height (widget) - trough_borders.top - trough_borders.bottom; inverted = self->priv->inverted; if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL) { if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL) inverted = !inverted; } if (self->priv->bar_mode == GTK_LEVEL_BAR_MODE_CONTINUOUS) gtk_level_bar_draw_fill_continuous (self, cr, inverted, &fill_area); else if (self->priv->bar_mode == GTK_LEVEL_BAR_MODE_DISCRETE) gtk_level_bar_draw_fill_discrete (self, cr, inverted, &fill_area); }
static gboolean gtk_level_bar_render_trough (GtkCssGadget *gadget, cairo_t *cr, int x, int y, int width, int height, gpointer data) { GtkWidget *widget = gtk_css_gadget_get_owner (gadget); GtkLevelBar *self = GTK_LEVEL_BAR (widget); if (self->priv->bar_mode == GTK_LEVEL_BAR_MODE_CONTINUOUS) gtk_level_bar_draw_fill_continuous (self, cr); else gtk_level_bar_draw_fill_discrete (self, cr); return FALSE; }
static void gtk_level_bar_draw_fill (GtkLevelBar *self, cairo_t *cr) { GtkWidget *widget = GTK_WIDGET (self); GtkBorder trough_borders; cairo_rectangle_int_t fill_area; gtk_level_bar_get_borders (self, &trough_borders); fill_area.x = trough_borders.left; fill_area.y = trough_borders.top; fill_area.width = gtk_widget_get_allocated_width (widget) - trough_borders.left - trough_borders.right; fill_area.height = gtk_widget_get_allocated_height (widget) - trough_borders.top - trough_borders.bottom; if (self->priv->bar_mode == GTK_LEVEL_BAR_MODE_CONTINUOUS) gtk_level_bar_draw_fill_continuous (self, cr, &fill_area); else gtk_level_bar_draw_fill_discrete (self, cr, &fill_area); }