gtk 마우스 클릭 이벤트 발생시 이미지 삽입
include
#include
#include
#define X_AXIS 240
#define Y_AXIS 280
#define X_PAD 1
#define Y_PAD 7
/*콜백 함수를 등록한다. */
gint button_press_event(GtkWidget *frame, GdkEventButton *event)
{
GtkWidget *black;
if(event->button == 1)
{
gint x = event->x - X_PAD;
gint y = event->y - Y_PAD;
g_print("%d, %d\n",x, y);
black = gtk_image_new_from_file("./back.bmp");
gtk_container_add(GTK_CONTAINER(frame), black);
gtk_widget_show(black);
}
return TRUE;
}
gboolean expose_event(GtkWidget *widget, GdkEventExpose *event)
{
return FALSE;
}
void print_and_quit(GtkButton *was_clicked, gpointer user_data)
{
..
}
gboolean delete_event_handler(GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
.....
}
int main(int argc, char *argv[])
{
GtkWidget *top_widget;
GtkWidget *main_box; /*이미지와 버튼이 들어갈 매인 박스를 선언해준다.*/
GtkWidget *button_box; /*버튼들이 삽입될 box를 선언해 준다. */
GtkWidget *Bakground; /* 배경 이미지를 생성한다.*/
....
gtk_init(&argc, &argv);
/* window_widget 생성 */
top_widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/*창 크기 조절 보드 스크린 크기에 맞추어서 */
....
....
/*윈도우 속성 설정 이름은 Network omok game 이다." */
gtk_window_set_title(GTK_WINDOW(top_widget), "Omok games");
/* 백그라운드에 오목판 이미지를 삽입한다. */
Bakground = gtk_image_new_from_file("./pan.bmp");
/*인스턴스 계층을 정의 한다. */
..
/* 박스와 버튼 을 설정한다.*/
....
/* 메인 박스에 버튼 박스를 등록한다. */
...
/* 콜백을 등록한다. */
...
/*위도우 종료 콜백을 등록한다. */
....
/*마우스의 좌표 값을 얻어 온다. */
gtk_signal_connect(GTK_OBJECT(top_widget), "button-press-event", GTK_SIGNAL_FUNC(button_press_event), NULL);
gtk_widget_set_events(top_widget, GDK_BUTTON_PRESS_MASK | GDK_EXPOSURE_MASK | GDK_LEAVE_NOTIFY_MASK );
/* 버튼 박스에 박스들을 등록한다. */
.....
/*화면에 보여준다.*/
gtk_widget_show_all(top_widget);
gtk_main();
g_print("Bye! \n");
return 0;
}
마우스 오른쪽 버튼을 클릭하면 말들에 이미지를 가져와서 뿌려줄려고 합니다.
현재 이부분에서 막혀서 도저히 진도가 안나갑니다.
좀 도와주세요..ㅠ.ㅠ
댓글 달기