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);