24 |
#include <gtk/gtk.h> |
#include <gtk/gtk.h> |
25 |
#include "gtkutils.h" |
#include "gtkutils.h" |
26 |
|
|
27 |
static void gtkut_widget_draw_cb(GtkWidget *widget, GdkRectangle *area, |
static void |
28 |
gboolean *flag) |
gtkut_widget_draw_cb (GtkWidget * widget, GdkRectangle * area, |
29 |
|
gboolean * flag) |
30 |
{ |
{ |
31 |
*flag = TRUE; |
*flag = TRUE; |
32 |
gtk_signal_disconnect_by_data(GTK_OBJECT(widget), flag); |
gtk_signal_disconnect_by_data (GTK_OBJECT (widget), flag); |
33 |
} |
} |
34 |
|
|
35 |
void gtkut_widget_wait_for_draw(GtkWidget *widget) |
void |
36 |
|
gtkut_widget_wait_for_draw (GtkWidget * widget) |
37 |
{ |
{ |
38 |
gboolean flag = FALSE; |
gboolean flag = FALSE; |
39 |
|
|
40 |
if (!GTK_WIDGET_VISIBLE(widget)) return; |
if (!GTK_WIDGET_VISIBLE (widget)) |
41 |
|
return; |
42 |
|
|
43 |
gtk_signal_connect(GTK_OBJECT(widget), "draw", |
gtk_signal_connect (GTK_OBJECT (widget), "draw", |
44 |
GTK_SIGNAL_FUNC(gtkut_widget_draw_cb), &flag); |
GTK_SIGNAL_FUNC (gtkut_widget_draw_cb), &flag); |
45 |
while (!flag) gtk_main_iteration(); |
while (!flag) |
46 |
|
gtk_main_iteration (); |
47 |
} |
} |