Example #1
0
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);
}
Example #2
0
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;
}
Example #3
0
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);
}