--- np2/x11/gtk/Attic/gtk_main.c 2004/07/05 14:36:58 1.5 +++ np2/x11/gtk/Attic/gtk_main.c 2004/07/26 15:54:33 1.7 @@ -38,6 +38,7 @@ #include "mousemng.h" #include "scrnmng.h" #include "soundmng.h" +#include "taskmng.h" #include "gtk/xnp2.h" #include "gtk/gtk_keyboard.h" @@ -64,23 +65,35 @@ /* + - Signal: gboolean GtkWidget::configure_event(GtkWidget *widget, + GdkEventConfigure *event, gpointer user_data) +*/ +static gboolean +configure(GtkWidget *w, GdkEventConfigure *ev, gpointer p) +{ + + UNUSED(ev); + UNUSED(p); + + gdk_draw_rectangle(w->window, w->style->black_gc, TRUE, + 0, 0, w->allocation.width, w->allocation.height); + + return TRUE; +} + +/* - Signal: gboolean GtkWidget::expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) */ static gboolean expose(GtkWidget *w, GdkEventExpose *ev, gpointer p) { - RECT_T r; UNUSED(w); UNUSED(p); if (ev->count == 0) { - r.left = ev->area.x; - r.top = ev->area.y; - r.right = ev->area.width; - r.bottom = ev->area.height; - scrnmng_draw(&r); + scrndraw_redraw(); } return TRUE; } @@ -172,22 +185,6 @@ button_release(GtkWidget *w, GdkEventBut return TRUE; } -/* - - Signal: gboolean GtkWidget::enter_notify_event (GtkWidget *widget, - GdkEventCrossing *event, gpointer user_data) -*/ -static gboolean -enter_notify(GtkWidget *w, GdkEventCrossing *ev, gpointer p) -{ - - UNUSED(w); - UNUSED(p); - UNUSED(ev); - - scrndraw_redraw(); - return TRUE; -} - /* * misc @@ -209,6 +206,9 @@ set_icon_bitmap(GtkWidget *w) */ static int install_count = 0; static int idle_id; +#if defined(SUPPORT_JOYSTICK) +static int joymng_task_id; +#endif void install_idle_process(void) @@ -298,10 +298,10 @@ gui_gtk_widget_create(void) gtk_signal_connect(GTK_OBJECT(window), "button_release_event", GTK_SIGNAL_FUNC(button_release), NULL); + gtk_signal_connect(GTK_OBJECT(drawarea), "configure_event", + GTK_SIGNAL_FUNC(configure), NULL); gtk_signal_connect(GTK_OBJECT(drawarea), "expose_event", GTK_SIGNAL_FUNC(expose), NULL); - gtk_signal_connect(GTK_OBJECT(drawarea), "enter_notify_event", - GTK_SIGNAL_FUNC(enter_notify), NULL); } static void @@ -322,6 +322,9 @@ void gui_gtk_widget_mainloop(void) { +#if defined(SUPPORT_JOYSTICK) + joymng_task_id = gtk_idle_add((GtkFunction)joymng_update_task, NULL); +#endif install_idle_process(); gtk_main(); uninstall_idle_process(); @@ -331,6 +334,10 @@ void gui_gtk_widget_quit(void) { +#if defined(SUPPORT_JOYSTICK) + gtk_idle_remove(joymng_task_id); +#endif + taskmng_exit(); gtk_main_quit(); } @@ -338,7 +345,9 @@ void gui_gtk_event_process(void) { - /* XXX: Nothing to do */ + if (taskmng_isavail() && gdk_events_pending()) { + gtk_main_iteration_do(FALSE); + } } void