(グローバル)
unsigned drawing_flag = 0; /* ドラッグ中かどうか 1=ドラッグ中 0=他 */
(button_press の中)
drawing_flag = 1; /* ドラッグ中かどうか */
(button_release の中)
drawing_flag = 0; /* ドラッグ中かどうか */
(expose の中)
//ドラッグ中の線を描画
gdk_draw_line(widget->window,widget->style->fg_gc[widget->state],
startx,starty,
endx, endy);
(motion_notify の中)
//ドラッグ中の座標を取得(exposeで描画)
if(drawing_flag){
cur_x = (gint)event->x;
cur_y = (gint)event->y;
endx = cur_x;
endy = cur_y;
printf("drawing %d %dn",endx,endy);
gtk_widget_queue_draw(widget);
}
gcc main.c -o base `pkg-config --cflags --libs gtk+-2.0`
参考
編集
unsigned drawing_flag = 0; /* ドラッグ中かどうか 1=ドラッグ中 0=他 */
(button_press の中)
drawing_flag = 1; /* ドラッグ中かどうか */
(button_release の中)
drawing_flag = 0; /* ドラッグ中かどうか */
(expose の中)
//ドラッグ中の線を描画
gdk_draw_line(widget->window,widget->style->fg_gc[widget->state],
startx,starty,
endx, endy);
(motion_notify の中)
//ドラッグ中の座標を取得(exposeで描画)
if(drawing_flag){
cur_x = (gint)event->x;
cur_y = (gint)event->y;
endx = cur_x;
endy = cur_y;
printf("drawing %d %dn",endx,endy);
gtk_widget_queue_draw(widget);
}
gcc main.c -o base `pkg-config --cflags --libs gtk+-2.0`
参考
編集