- if (!win->HasVMT()) return;
-
- gtk_draw_shadow( widget->style,
- widget->window,
- GTK_STATE_NORMAL,
- GTK_SHADOW_OUT,
- 0, 0,
- win->m_width, win->m_height );
+ if (g_isIdle) wxapp_install_idle_handler();
+
+ if (!win->m_hasVMT) return;
+
+ GtkPizza *pizza = GTK_PIZZA(widget);
+
+ gtk_draw_shadow( widget->style,
+ pizza->bin_window,
+ GTK_STATE_NORMAL,
+ GTK_SHADOW_OUT,
+ 0, 0,
+ win->m_width, win->m_height );
+
+ if (!win->m_title.IsEmpty() &&
+ ((win->GetWindowStyle() & wxCAPTION) ||
+ (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) ||
+ (win->GetWindowStyle() & wxTINY_CAPTION_VERT)))
+ {
+ wxClientDC dc(win);
+ dc.SetFont( *wxSMALL_FONT );
+ int height = dc.GetCharHeight();
+
+ GdkGC *gc = gdk_gc_new( pizza->bin_window );
+ gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] );
+ gdk_draw_rectangle( pizza->bin_window, gc, TRUE,
+ 3,
+ 3,
+ win->m_width - 7,
+ height+1 );
+ gdk_gc_unref( gc );
+
+ // Hack alert
+ dc.m_window = pizza->bin_window;
+ dc.SetTextForeground( *wxWHITE );
+ dc.DrawText( win->GetTitle(), 6, 3 );
+ }
+}