Mercurial > dwindows
comparison gtk/dw.c @ 375:84f79737b7d9
Manually draw the background rectangle with GTK 1.x since it doesn't appear
to be able to do it automatically.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 27 Apr 2003 20:11:05 +0000 |
parents | 47dc310e6d74 |
children | 2e5f3cb38d19 |
comparison
equal
deleted
inserted
replaced
374:47dc310e6d74 | 375:84f79737b7d9 |
---|---|
5403 | 5403 |
5404 gdk_pango_context_set_colormap(context, _dw_cmap); | 5404 gdk_pango_context_set_colormap(context, _dw_cmap); |
5405 pango_layout_set_font_description(layout, font); | 5405 pango_layout_set_font_description(layout, font); |
5406 pango_layout_set_text(layout, text, strlen(text)); | 5406 pango_layout_set_text(layout, text, strlen(text)); |
5407 | 5407 |
5408 if(_transparent[index]) | 5408 if(_transparent[index]) |
5409 gdk_draw_layout(handle ? handle->window : pixmap->pixmap, gc, x, y + 2, layout); | 5409 gdk_draw_layout(handle ? handle->window : pixmap->pixmap, gc, x, y + 2, layout); |
5410 else | 5410 else |
5411 gdk_draw_layout_with_colors(handle ? handle->window : pixmap->pixmap, gc, x, y + 2, layout, &_foreground[index], &_background[index]); | 5411 gdk_draw_layout_with_colors(handle ? handle->window : pixmap->pixmap, gc, x, y + 2, layout, &_foreground[index], &_background[index]); |
5412 | 5412 |
5413 g_object_unref(layout); | 5413 g_object_unref(layout); |
5420 font = gdk_font_load(fontname); | 5420 font = gdk_font_load(fontname); |
5421 if(!font) | 5421 if(!font) |
5422 font = gdk_font_load("fixed"); | 5422 font = gdk_font_load("fixed"); |
5423 if(font) | 5423 if(font) |
5424 { | 5424 { |
5425 gint ascent; | 5425 gint ascent, descent, width; |
5426 | 5426 int index = _find_thread_index(dw_thread_id()); |
5427 gdk_text_extents(font, text, strlen(text), NULL, NULL, NULL, &ascent, NULL); | 5427 |
5428 gdk_text_extents(font, text, strlen(text), NULL, NULL, &width, &ascent, &descent); | |
5429 if(!_transparent[index]) | |
5430 { | |
5431 GdkGC *gc2 = NULL; | |
5432 | |
5433 gc2 = gdk_gc_new(handle ? handle->window : pixmap->pixmap); | |
5434 if(gc2) | |
5435 { | |
5436 gdk_gc_set_foreground(gc2, &_background[index]); | |
5437 gdk_gc_set_background(gc2, &_background[index]); | |
5438 } | |
5439 gdk_draw_rectangle(handle ? handle->window : pixmap->pixmap, gc2, TRUE, x, y, width, ascent + descent + 2); | |
5440 gdk_gc_unref(gc2); | |
5441 } | |
5428 gdk_draw_text(handle ? handle->window : pixmap->pixmap, font, gc, x, y + ascent + 2, text, strlen(text)); | 5442 gdk_draw_text(handle ? handle->window : pixmap->pixmap, font, gc, x, y + ascent + 2, text, strlen(text)); |
5429 gdk_font_unref(font); | 5443 gdk_font_unref(font); |
5430 } | 5444 } |
5431 #endif | 5445 #endif |
5432 gdk_gc_unref(gc); | 5446 gdk_gc_unref(gc); |