* BUG: Take Label.Padding and TextLabel.Padding properties into account 
  correctly.


git-svn-id: svn://localhost/gambas/trunk@5069 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
Benoît Minisini 2012-08-22 10:29:04 +00:00
parent b6cc5cdbb3
commit f6ea00f15f

View file

@ -31,7 +31,7 @@ static gboolean cb_expose(GtkWidget *draw, GdkEventExpose *e, gLabel *d)
GtkStyle *style = gtk_widget_get_style(draw); GtkStyle *style = gtk_widget_get_style(draw);
GdkGC *gc; GdkGC *gc;
int vw, vh, lw, lh; int vw, vh, lw, lh;
int fw = d->getFrameWidth(); int fw = Max(d->getFramePadding(), d->getFrameWidth());
gc = gdk_gc_new(draw->window); gc = gdk_gc_new(draw->window);
gdk_gc_set_clip_rectangle(gc, &e->area); gdk_gc_set_clip_rectangle(gc, &e->area);
@ -82,7 +82,7 @@ static gboolean cb_expose(GtkWidget *draw, GdkEventExpose *e, gLabel *d)
vw += draw->allocation.x; vw += draw->allocation.x;
vh += draw->allocation.y; vh += draw->allocation.y;
if (d->_transparent && d->_mask_dirty) /*if (d->_transparent && d->_mask_dirty)
{ {
GdkBitmap *mask = gt_make_text_mask(draw->window, d->width(), d->height(), d->layout, vw, vh); GdkBitmap *mask = gt_make_text_mask(draw->window, d->width(), d->height(), d->layout, vw, vh);
@ -105,7 +105,7 @@ static gboolean cb_expose(GtkWidget *draw, GdkEventExpose *e, gLabel *d)
gtk_widget_shape_combine_mask(d->border, mask, 0, 0); gtk_widget_shape_combine_mask(d->border, mask, 0, 0);
g_object_unref(mask); g_object_unref(mask);
d->_mask_dirty = false; d->_mask_dirty = false;
} }*/
//fprintf(stderr, "draw label: %s: %d %d\n", d->name(), vw, vh); //fprintf(stderr, "draw label: %s: %d %d\n", d->name(), vw, vh);
gdk_draw_layout(draw->window, gc, vw, vh, d->layout); gdk_draw_layout(draw->window, gc, vw, vh, d->layout);
@ -179,7 +179,7 @@ void gLabel::updateSize(bool adjust, bool noresize_width)
if (_locked || !textdata || !*textdata) if (_locked || !textdata || !*textdata)
return; return;
fw = getFrameWidth(); fw = Max(getFrameWidth(), getFramePadding());
if (markup && _wrap) if (markup && _wrap)
{ {
@ -234,8 +234,8 @@ void gLabel::setTransparent(bool vl)
return; return;
_transparent = vl; _transparent = vl;
gtk_widget_shape_combine_mask(border, NULL, 0, 0); //gtk_widget_shape_combine_mask(border, NULL, 0, 0);
refresh(); //refresh();
} }
char *gLabel::text() char *gLabel::text()
@ -245,7 +245,7 @@ char *gLabel::text()
void gLabel::setText(char *vl) void gLabel::setText(char *vl)
{ {
bool no_text_before = !textdata || !*textdata; //bool no_text_before = !textdata || !*textdata;
g_free(textdata); g_free(textdata);
@ -257,11 +257,11 @@ void gLabel::setText(char *vl)
updateLayout(); updateLayout();
updateSize(); updateSize();
if (_transparent) /*if (_transparent)
{ {
if (no_text_before) if (no_text_before)
gtk_widget_shape_combine_mask(border, NULL, 0, 0); gtk_widget_shape_combine_mask(border, NULL, 0, 0);
} }*/
refresh(); refresh();
} }