*#include *#include *#include "proto.h" *int module; *int itemnum = 0; *int end = 0; *int bamen = 0;//場面1はあいてむ選択画面、2は使うか使わないかの選択画面 *int com; //はいorいいえ static gboolean cb_expose_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { if(module == 3){ cb_expose_item_event(widget, event, user_data); return FALSE; } if(module == 2){ cb_expose_play_event(widget, event, user_data); return FALSE; } if(module == 1){ cb_expose_start_event(widget, event, user_data); return FALSE; } } //マウスイベント static gboolean cb_mouse_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { if(module == 3){ cb_mouse_item_press(widget, event, user_data); } if(module == 2){ cb_mouse_play_press(widget, event, user_data); } if(module == 1){ cb_mouse_start_press(widget, event, user_data); } } void itemran(GtkWidget *window) { module = 3; gtk_widget_show_all(item0(window)); gtk_main(); gtk_widget_destroy(canvas); while(end != 1){ gtk_widget_show_all(item1(window)); gtk_main(); gtk_widget_destroy(canvas); } gtk_widget_show_all(item2(window)); gtk_main(); gtk_widget_destroy(canvas); return; } GtkWidget *item0(GtkWidget *window) { itemnum = 0; canvas = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER(window), canvas); g_signal_connect (G_OBJECT(canvas), "expose_event", G_CALLBACK (cb_expose_event), NULL); gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK); g_signal_connect(G_OBJECT(window), "button-press-event", G_CALLBACK(cb_mouse_press), NULL); return window; } GtkWidget *item1(GtkWidget *window) { bamen = 1; canvas = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER(window), canvas); g_signal_connect (G_OBJECT(canvas), "expose_event", G_CALLBACK (cb_expose_event), NULL); gtk_widget_add_events(window,GDK_BUTTON_PRESS_MASK); g_signal_connect(G_OBJECT(window), "button-press-event", G_CALLBACK(cb_mouse_press), NULL); return window; } GtkWidget *item2(GtkWidget *window) { bamen = 2; canvas = gtk_drawing_area_new (); gtk_container_add (GTK_CONTAINER(window), canvas); g_signal_connect (G_OBJECT(canvas), "expose_event", G_CALLBACK (cb_expose_event), NULL); gtk_widget_add_events(window,GDK_BUTTON_PRESS_MASK); g_signal_connect(G_OBJECT(window), "button-press-event", G_CALLBACK(cb_mouse_press), NULL); return window; } void cb_expose_item_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { GdkWindow *drawable = widget->window; cairo_t *cr; cairo_surface_t *surface; cr = gdk_cairo_create(drawable); if(ganchan.commandnum == 5 && itemnum == 0){ //item選択画面の表示 surface = cairo_image_surface_create_from_png("./material/event/picture/item.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); }else if(ganchan.commandnum == 5 && itemnum == 1){ if(ganchan.items[0] >= 1){ surface = cairo_image_surface_create_from_png("./material/event/picture/sentaku.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); end = 1; } }else if(ganchan.commandnum == 5 && itemnum == 2){ if(ganchan.items[1] >= 1){ surface = cairo_image_surface_create_from_png("./material/event/picture/sentaku.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); end = 1; } }else if(ganchan.commandnum == 5 && itemnum == 3){ if(ganchan.items[2] >= 1){ surface = cairo_image_surface_create_from_png("./material/event/picture/sentaku.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); end = 1; } }else if(ganchan.commandnum == 5 && itemnum == 4){ if(ganchan.items[3] >= 1){ surface = cairo_image_surface_create_from_png("./material/event/picture/sentaku.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); end = 1; } } else if(ganchan.commandnum == 5 && itemnum == 1 && com == 1){ surface = cairo_image_surface_create_from_png("./material/event/picture/st2.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); ganchan.knowledge += 5; } else if(ganchan.commandnum == 5 && itemnum == 1 && com == 2){ surface = cairo_image_surface_create_from_png("./material/event/picture/st2.png"); cairo_set_source_surface(cr, surface, 0.0, 0.0); cairo_paint(cr); } } void cb_mouse_item_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { switch(bamen){ case 1:{ if(event->x >= 595&&event->x <= 1068){ if( event->y >=32&& event->y <=164){ itemnum = 1; break; } } if(event->x >= 595&& event->x <= 1068){ if(event->y >=198&& event->y <=331){ itemnum = 2; break; } } if(event->x >= 595&&event->x <= 1068){ if( event->y >=361&& event->y <=495){ itemnum = 3; break; } } if(event->x >= 595&&event->x <= 1068){ if( event->y >=525&& event->y <=662){ itemnum = 4; break; } } } case 2:{ if(event->x >=124 && event -> x <=574){ if(event->y >=250&& event->y<= 472){ com =1; } } if(event->x >=584 && event->x <=1041){ if(event->y >= 250 && event-> y<= 472){ com=1; } } } } gtk_main_quit(); }