void gnt_progress_bar_set_fraction (GntProgressBar *pbar, gdouble fraction) { GntProgressBarPrivate *priv = GNT_PROGRESS_BAR_GET_PRIVATE (pbar); if (fraction > 1.0) priv->fraction = 1.0; else if (fraction < 0.0) priv->fraction = 0.0; else priv->fraction = fraction; if ((GNT_WIDGET_FLAGS(pbar) & GNT_WIDGET_MAPPED)) gnt_widget_draw(GNT_WIDGET(pbar)); }
void gnt_progress_bar_set_orientation (GntProgressBar *pbar, GntProgressBarOrientation orientation) { GntProgressBarPrivate *priv = GNT_PROGRESS_BAR_GET_PRIVATE (pbar); GntWidget *widget = GNT_WIDGET(pbar); priv->orientation = orientation; if (orientation == GNT_PROGRESS_LEFT_TO_RIGHT || orientation == GNT_PROGRESS_RIGHT_TO_LEFT) { GNT_WIDGET_SET_FLAGS(pbar, GNT_WIDGET_GROW_X); GNT_WIDGET_UNSET_FLAGS(pbar, GNT_WIDGET_GROW_Y); widget->priv.minw = 8; widget->priv.minh = 1; } else { GNT_WIDGET_UNSET_FLAGS(pbar, GNT_WIDGET_GROW_X); GNT_WIDGET_SET_FLAGS(pbar, GNT_WIDGET_GROW_Y); widget->priv.minw = 1; widget->priv.minh = 8; } if ((GNT_WIDGET_FLAGS(pbar) & GNT_WIDGET_MAPPED)) gnt_widget_draw(GNT_WIDGET(pbar)); }
static void reposition_children(GntWidget *widget) { GList *iter; GntBox *box = GNT_BOX(widget); int w, h, curx, cury, max; gboolean has_border = FALSE; w = h = 0; max = 0; curx = widget->priv.x; cury = widget->priv.y; if (!(GNT_WIDGET_FLAGS(widget) & GNT_WIDGET_NO_BORDER)) { has_border = TRUE; curx += 1; cury += 1; } for (iter = box->list; iter; iter = iter->next) { if (GNT_WIDGET_IS_FLAG_SET(GNT_WIDGET(iter->data), GNT_WIDGET_INVISIBLE)) continue; gnt_widget_set_position(GNT_WIDGET(iter->data), curx, cury); gnt_widget_get_size(GNT_WIDGET(iter->data), &w, &h); if (box->vertical) { if (h) { cury += h + box->pad; if (max < w) max = w; } } else { if (w) { curx += w + box->pad; if (max < h) max = h; } } } if (has_border) { curx += 1; cury += 1; max += 2; } if (box->list) { if (box->vertical) cury -= box->pad; else curx -= box->pad; } if (box->vertical) { widget->priv.width = max; widget->priv.height = cury - widget->priv.y; } else { widget->priv.width = curx - widget->priv.x; widget->priv.height = max; } }