GtkSpinButtonウィジェットは、プログラムのユーザに、一定の範囲内の数値を入力してもらうのに都合がいいウィジェットです。数値の入力・表示エリアと、-/+ボタンが横に並んだ形をしています。
値の入力・表示エリアに、値を直接タイプして入力することもできますし、-/+ボタンで値を増減させることもできます。
-/+ボタンで値を変更する場合には、あらかじめ設定した範囲を超えないようになっており、また、タイプで入力した場合でも、設定の範囲内かどうかチェックする機能がついています。
GtkSpinButtonを生成するには、gtk_spin_button_new_with_range、または、gtk_spin_button_new、いずれかの関数を実行します。
gtk_spin_button_new_with_range関数は、「スピンボタンの挙動を細かく設定する必要はないから、手っ取り早く生成したい」という場合に使います。
指定する引数は、入力・表示可能な最小値と最大値、および、-/+ボタンを1回押した時に値をどれだけ増減させるか、の3つです。
一方、gtk_spin_button_new関数は、引数に、GtkAdjustmentのインスタンス、-/+ボタンを押し続けた時にどれくらい速く値を増減させるか、小数点以下の桁を何桁表示するか、の3つを指定します。
この時に使うGtkAdjustmentによって、初期値、最小値、最大値、-/+ボタンを左クリックした時の増減値、-/+ボタンをホイールクリックした時の増減値、の5つの値を設定できます。
ちなみに、-/+ボタンを右クリックした時には、常に最小値または最大値に一気にジャンプします。
生成後に使う機能としては、現在の値の取得・設定、数字以外入力禁止にするかどうかのオン・オフ、設定範囲外の値が入力された時の動作の設定、などがあります。