GTKを使ったボタン操作
パッチビューワーを作っていて、CtrlキーやShiftキーが押されているか調べたかったので。
GTKをいろいろ調査したときのメモ
g_signal_connect(G_OBJECT(ウィンドウ), "button_press_event", //イベント名 G_CALLBACK(コールバック関数名), NULL); gboolean コールバック関数(GtkWidget *widget,GdkEventKey *event) { cout << "press key value = " << event->keyval <<" "<< event->string << endl; if( GDK_Control_L == event->keyval || GDK_Control_R == event->keyval){ cout << "control key press" << endl; }else if( GDK_Shift_L == event->keyval || GDK_Shift_R == event->keyval ){ cout << "shift key press" << endl; } return TRUE; }
*[Program Technique]ついでにGTKでマウスのスクロールは?
スクロールは
gboolean コールバック関数(GtkWidget *widget, GdkEventScroll *event) { cout << "scroll" << endl; if( event->direction == GDK_SCROLL_UP ){ }else if( event->direction == GDK_SCROLL_DOWN ){ } gtk_widget_queue_draw(GTK_WIDGET(g_window)); return TRUE; } g_signal_connect(G_OBJECT(ウィンドウ), "scroll_event", G_CALLBACK(コールバック関数), NULL);