Move activity bar offset and size calculations to separate function.
Fri Jun 16 11:49:53 2006 Tim Janik <timj@imendio.com> * fixed #337882 by applying patches from Tommi Komulainen: * gtk/gtkprogressbar.c: (gtk_progress_bar_paint_activity): (gtk_progress_bar_get_activity): Move activity bar offset and size calculations to separate function. (gtk_progress_bar_paint_text): Allow caller to specify offset for the prelight part in addition to width. (gtk_progress_bar_paint): Paint the text also in activity mode, #337882. * gtk/gtkprogressbar.c: (gtk_progress_bar_paint_text): Paint the prelighted text on top of the normal rather than side by side, to simplify painting text in activity mode.
This commit is contained in:
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
||||
Fri Jun 16 11:49:53 2006 Tim Janik <timj@imendio.com>
|
||||
|
||||
* fixed #337882 by applying patches from Tommi Komulainen:
|
||||
|
||||
* gtk/gtkprogressbar.c:
|
||||
(gtk_progress_bar_paint_activity):
|
||||
(gtk_progress_bar_get_activity): Move activity bar offset and size
|
||||
calculations to separate function.
|
||||
(gtk_progress_bar_paint_text): Allow caller to specify offset for the
|
||||
prelight part in addition to width.
|
||||
(gtk_progress_bar_paint): Paint the text also in activity mode, #337882.
|
||||
|
||||
* gtk/gtkprogressbar.c: (gtk_progress_bar_paint_text): Paint the
|
||||
prelighted text on top of the normal rather than side by side, to
|
||||
simplify painting text in activity mode.
|
||||
|
||||
2006-06-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* modules/printbackends/cups/gtkprintbackendcups.c: Include
|
||||
|
||||
@ -1,3 +1,19 @@
|
||||
Fri Jun 16 11:49:53 2006 Tim Janik <timj@imendio.com>
|
||||
|
||||
* fixed #337882 by applying patches from Tommi Komulainen:
|
||||
|
||||
* gtk/gtkprogressbar.c:
|
||||
(gtk_progress_bar_paint_activity):
|
||||
(gtk_progress_bar_get_activity): Move activity bar offset and size
|
||||
calculations to separate function.
|
||||
(gtk_progress_bar_paint_text): Allow caller to specify offset for the
|
||||
prelight part in addition to width.
|
||||
(gtk_progress_bar_paint): Paint the text also in activity mode, #337882.
|
||||
|
||||
* gtk/gtkprogressbar.c: (gtk_progress_bar_paint_text): Paint the
|
||||
prelighted text on top of the normal rather than side by side, to
|
||||
simplify painting text in activity mode.
|
||||
|
||||
2006-06-16 Matthias Clasen <mclasen@redhat.com>
|
||||
|
||||
* modules/printbackends/cups/gtkprintbackendcups.c: Include
|
||||
|
||||
@ -598,6 +598,30 @@ gtk_progress_bar_act_mode_enter (GtkProgress *progress)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_progress_bar_get_activity (GtkProgressBar *pbar,
|
||||
GtkProgressBarOrientation orientation,
|
||||
gint *offset,
|
||||
gint *amount)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (pbar);
|
||||
|
||||
*offset = pbar->activity_pos;
|
||||
|
||||
switch (orientation)
|
||||
{
|
||||
case GTK_PROGRESS_LEFT_TO_RIGHT:
|
||||
case GTK_PROGRESS_RIGHT_TO_LEFT:
|
||||
*amount = MAX (2, widget->allocation.width / pbar->activity_blocks);
|
||||
break;
|
||||
|
||||
case GTK_PROGRESS_TOP_TO_BOTTOM:
|
||||
case GTK_PROGRESS_BOTTOM_TO_TOP:
|
||||
*amount = MAX (2, widget->allocation.height / pbar->activity_blocks);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_progress_bar_paint_activity (GtkProgressBar *pbar,
|
||||
GtkProgressBarOrientation orientation)
|
||||
@ -610,18 +634,16 @@ gtk_progress_bar_paint_activity (GtkProgressBar *pbar,
|
||||
{
|
||||
case GTK_PROGRESS_LEFT_TO_RIGHT:
|
||||
case GTK_PROGRESS_RIGHT_TO_LEFT:
|
||||
area.x = pbar->activity_pos;
|
||||
gtk_progress_bar_get_activity (pbar, orientation, &area.x, &area.width);
|
||||
area.y = widget->style->ythickness;
|
||||
area.width = MAX (2, widget->allocation.width / pbar->activity_blocks);
|
||||
area.height = widget->allocation.height - 2 * widget->style->ythickness;
|
||||
break;
|
||||
|
||||
case GTK_PROGRESS_TOP_TO_BOTTOM:
|
||||
case GTK_PROGRESS_BOTTOM_TO_TOP:
|
||||
gtk_progress_bar_get_activity (pbar, orientation, &area.y, &area.height);
|
||||
area.x = widget->style->xthickness;
|
||||
area.y = pbar->activity_pos;
|
||||
area.width = widget->allocation.width - 2 * widget->style->xthickness;
|
||||
area.height = MAX (2, widget->allocation.height / pbar->activity_blocks);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -738,6 +760,7 @@ gtk_progress_bar_paint_discrete (GtkProgressBar *pbar,
|
||||
|
||||
static void
|
||||
gtk_progress_bar_paint_text (GtkProgressBar *pbar,
|
||||
gint offset,
|
||||
gint amount,
|
||||
GtkProgressBarOrientation orientation)
|
||||
{
|
||||
@ -781,35 +804,39 @@ gtk_progress_bar_paint_text (GtkProgressBar *pbar,
|
||||
switch (orientation)
|
||||
{
|
||||
case GTK_PROGRESS_LEFT_TO_RIGHT:
|
||||
if (offset != -1)
|
||||
prelight_clip.x = offset;
|
||||
prelight_clip.width = amount;
|
||||
normal_clip.x += amount;
|
||||
normal_clip.width -= amount;
|
||||
break;
|
||||
|
||||
case GTK_PROGRESS_RIGHT_TO_LEFT:
|
||||
normal_clip.width -= amount;
|
||||
prelight_clip.x += normal_clip.width;
|
||||
prelight_clip.width -= normal_clip.width;
|
||||
if (offset != -1)
|
||||
prelight_clip.x = offset;
|
||||
else
|
||||
prelight_clip.x = rect.x + rect.width - amount;
|
||||
prelight_clip.width = amount;
|
||||
break;
|
||||
|
||||
case GTK_PROGRESS_TOP_TO_BOTTOM:
|
||||
if (offset != -1)
|
||||
prelight_clip.y = offset;
|
||||
prelight_clip.height = amount;
|
||||
normal_clip.y += amount;
|
||||
normal_clip.height -= amount;
|
||||
break;
|
||||
|
||||
case GTK_PROGRESS_BOTTOM_TO_TOP:
|
||||
normal_clip.height -= amount;
|
||||
prelight_clip.y += normal_clip.height;
|
||||
prelight_clip.height -= normal_clip.height;
|
||||
if (offset != -1)
|
||||
prelight_clip.y = offset;
|
||||
else
|
||||
prelight_clip.y = rect.y + rect.height - amount;
|
||||
prelight_clip.height = amount;
|
||||
break;
|
||||
}
|
||||
|
||||
gtk_paint_layout (widget->style,
|
||||
progress->offscreen_pixmap,
|
||||
GTK_STATE_PRELIGHT,
|
||||
GTK_STATE_NORMAL,
|
||||
FALSE,
|
||||
&prelight_clip,
|
||||
&normal_clip,
|
||||
widget,
|
||||
"progressbar",
|
||||
x, y,
|
||||
@ -817,9 +844,9 @@ gtk_progress_bar_paint_text (GtkProgressBar *pbar,
|
||||
|
||||
gtk_paint_layout (widget->style,
|
||||
progress->offscreen_pixmap,
|
||||
GTK_STATE_NORMAL,
|
||||
GTK_STATE_PRELIGHT,
|
||||
FALSE,
|
||||
&normal_clip,
|
||||
&prelight_clip,
|
||||
widget,
|
||||
"progressbar",
|
||||
x, y,
|
||||
@ -864,6 +891,15 @@ gtk_progress_bar_paint (GtkProgress *progress)
|
||||
if (progress->activity_mode)
|
||||
{
|
||||
gtk_progress_bar_paint_activity (pbar, orientation);
|
||||
|
||||
if (GTK_PROGRESS (pbar)->show_text)
|
||||
{
|
||||
gint offset;
|
||||
gint amount;
|
||||
|
||||
gtk_progress_bar_get_activity (pbar, orientation, &offset, &amount);
|
||||
gtk_progress_bar_paint_text (pbar, offset, amount, orientation);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -884,7 +920,7 @@ gtk_progress_bar_paint (GtkProgress *progress)
|
||||
gtk_progress_bar_paint_continuous (pbar, amount, orientation);
|
||||
|
||||
if (GTK_PROGRESS (pbar)->show_text)
|
||||
gtk_progress_bar_paint_text (pbar, amount, orientation);
|
||||
gtk_progress_bar_paint_text (pbar, -1, amount, orientation);
|
||||
}
|
||||
else
|
||||
gtk_progress_bar_paint_discrete (pbar, orientation);
|
||||
|
||||
Reference in New Issue
Block a user