| version 1.5, 2007/01/10 17:53:27 | version 1.9, 2007/01/24 14:09:32 | 
| Line 62 | Line 62 | 
 | | GDK_LEAVE_NOTIFY_MASK        \ | | GDK_LEAVE_NOTIFY_MASK        \ | 
 | | GDK_EXPOSURE_MASK) | | GDK_EXPOSURE_MASK) | 
 |  |  | 
|  | /* | 
|  | - Signal: gboolean GtkWidget::destroy_event (GtkWidget *widget, | 
|  | GdkEventAny *event, gpointer user_data) | 
|  | */ | 
 | static gboolean | static gboolean | 
| destroy_evhandler(GtkWidget *w) | destroy_evhandler(GtkWidget *w, GdkEventAny *ev, gpointer p) | 
 | { | { | 
 |  |  | 
 | UNUSED(w); | UNUSED(w); | 
 |  | UNUSED(ev); | 
 |  | UNUSED(p); | 
 |  |  | 
 | toolkit_widget_quit(); | toolkit_widget_quit(); | 
 |  |  | 
 | return TRUE; | return TRUE; | 
 | } | } | 
 |  |  | 
| Line 86  configure_evhandler(GtkWidget *w, GdkEve | Line 92  configure_evhandler(GtkWidget *w, GdkEve | 
 |  |  | 
 | gdk_draw_rectangle(w->window, w->style->black_gc, TRUE, | gdk_draw_rectangle(w->window, w->style->black_gc, TRUE, | 
 | 0, 0, w->allocation.width, w->allocation.height); | 0, 0, w->allocation.width, w->allocation.height); | 
 |  |  | 
 | return TRUE; | return TRUE; | 
 | } | } | 
 |  |  | 
| Line 118  key_press_evhandler(GtkWidget *w, GdkEve | Line 123  key_press_evhandler(GtkWidget *w, GdkEve | 
 | UNUSED(w); | UNUSED(w); | 
 | UNUSED(p); | UNUSED(p); | 
 |  |  | 
| if (ev->keyval == GDK_F11) | if (ev->keyval == GDK_F11) { | 
| xmenu_select_screen(scrnmode ^ SCRNMODE_FULLSCREEN); | if ((np2oscfg.F11KEY == 1) && (scrnmode & SCRNMODE_FULLSCREEN)) | 
| else if ((ev->keyval == GDK_F12) && (np2oscfg.F12KEY == 0)) | xmenu_toggle_menu(); | 
|  | else if (np2oscfg.F11KEY == 2) | 
|  | xmenu_select_screen(scrnmode ^ SCRNMODE_FULLSCREEN); | 
|  | } else if ((ev->keyval == GDK_F12) && (np2oscfg.F12KEY == 0)) | 
 | xmenu_toggle_item(NULL, "mousemode", !np2oscfg.MOUSE_SW); | xmenu_toggle_item(NULL, "mousemode", !np2oscfg.MOUSE_SW); | 
 | else | else | 
 | gtkkbd_keydown(ev->keyval); | gtkkbd_keydown(ev->keyval); | 
| Line 196  button_release_evhandler(GtkWidget *w, G | Line 204  button_release_evhandler(GtkWidget *w, G | 
 | return TRUE; | return TRUE; | 
 | } | } | 
 |  |  | 
 |  | /* | 
 |  | - Signal: gboolean GtkWidget::motion_notify_event (GtkWidget *widget, | 
 |  | GdkEventMotion *event, gpointer user_data) | 
 |  | */ | 
 |  | static gboolean | 
 |  | motion_notify_evhandler(GtkWidget *w, GdkEventMotion *ev, gpointer p) | 
 |  | { | 
 |  |  | 
 |  | UNUSED(w); | 
 |  | UNUSED(p); | 
 |  |  | 
 |  | if ((scrnmode & SCRNMODE_FULLSCREEN) && (ev->y < 8.0)) | 
 |  | xmenu_show(); | 
 |  |  | 
 |  | return TRUE; | 
 |  | } | 
 |  |  | 
 |  |  | 
 | /* | /* | 
 | * misc | * misc | 
 | */ | */ | 
 |  | static gint | 
 |  | main_loop_quit(gpointer p) | 
 |  | { | 
 |  |  | 
 |  | UNUSED(p); | 
 |  |  | 
 |  | scrnmng_fullscreen(0); | 
 |  |  | 
 |  | return 0; | 
 |  | } | 
 |  |  | 
 | static void | static void | 
 | set_icon_bitmap(GtkWidget *w) | set_icon_bitmap(GtkWidget *w) | 
 | { | { | 
| Line 215  set_icon_bitmap(GtkWidget *w) | Line 251  set_icon_bitmap(GtkWidget *w) | 
 | /* | /* | 
 | * idle process | * idle process | 
 | */ | */ | 
| static int install_count = 0; | static volatile int install_count = 0; | 
 | static guint idle_id; | static guint idle_id; | 
 |  |  | 
 | void | void | 
| Line 223  install_idle_process(void) | Line 259  install_idle_process(void) | 
 | { | { | 
 |  |  | 
 | if (install_count++ == 0) { | if (install_count++ == 0) { | 
| idle_id = g_idle_add((GSourceFunc)mainloop, 0); | idle_id = g_idle_add((GSourceFunc)mainloop, NULL); | 
 | soundmng_play(); | soundmng_play(); | 
 | } | } | 
 | } | } | 
| Line 280  gui_gtk_widget_create(void) | Line 316  gui_gtk_widget_create(void) | 
 | gint root_x, root_y; | gint root_x, root_y; | 
 |  |  | 
 | main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); | main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); | 
 |  | //      gtk_widget_set_double_buffered(GTK_WIDGET(main_window), FALSE); | 
 | gtk_window_set_resizable(GTK_WINDOW(main_window), FALSE); | gtk_window_set_resizable(GTK_WINDOW(main_window), FALSE); | 
 | gtk_window_set_title(GTK_WINDOW(main_window), np2oscfg.titles); | gtk_window_set_title(GTK_WINDOW(main_window), np2oscfg.titles); | 
 | gtk_widget_add_events(main_window, EVENT_MASK); | gtk_widget_add_events(main_window, EVENT_MASK); | 
| Line 293  gui_gtk_widget_create(void) | Line 330  gui_gtk_widget_create(void) | 
 | gtk_widget_show(menubar); | gtk_widget_show(menubar); | 
 |  |  | 
 | drawarea = gtk_drawing_area_new(); | drawarea = gtk_drawing_area_new(); | 
 |  | //      gtk_widget_set_double_buffered(GTK_WIDGET(drawarea), FALSE); | 
 | gtk_widget_set_size_request(GTK_WIDGET(drawarea), 640, 400); | gtk_widget_set_size_request(GTK_WIDGET(drawarea), 640, 400); | 
 | gtk_box_pack_end(GTK_BOX(main_vbox), drawarea, FALSE, TRUE, 0); | gtk_box_pack_end(GTK_BOX(main_vbox), drawarea, FALSE, TRUE, 0); | 
 | gtk_widget_show(drawarea); | gtk_widget_show(drawarea); | 
| Line 320  gui_gtk_widget_create(void) | Line 358  gui_gtk_widget_create(void) | 
 | GTK_SIGNAL_FUNC(button_press_evhandler), NULL); | GTK_SIGNAL_FUNC(button_press_evhandler), NULL); | 
 | g_signal_connect(GTK_OBJECT(main_window), "button_release_event", | g_signal_connect(GTK_OBJECT(main_window), "button_release_event", | 
 | GTK_SIGNAL_FUNC(button_release_evhandler), NULL); | GTK_SIGNAL_FUNC(button_release_evhandler), NULL); | 
 |  | g_signal_connect(GTK_OBJECT(main_window), "motion_notify_event", | 
 |  | GTK_SIGNAL_FUNC(motion_notify_evhandler), NULL); | 
 |  |  | 
 | g_signal_connect(GTK_OBJECT(drawarea), "configure_event", | g_signal_connect(GTK_OBJECT(drawarea), "configure_event", | 
 | GTK_SIGNAL_FUNC(configure_evhandler), NULL); | GTK_SIGNAL_FUNC(configure_evhandler), NULL); | 
| Line 346  gui_gtk_widget_mainloop(void) | Line 386  gui_gtk_widget_mainloop(void) | 
 | { | { | 
 |  |  | 
 | install_idle_process(); | install_idle_process(); | 
 |  | gtk_quit_add(1, main_loop_quit, NULL); | 
 | gtk_main(); | gtk_main(); | 
 | uninstall_idle_process(); | uninstall_idle_process(); | 
 | } | } |