2012-04-25 15 views
0

ユーザーがGTK +ウィジェット(描画領域に似ています)のどこかをクリックしてマウス座標を返すまで待つ関数を記述しようとしています。この関数は、入力が受信されるまで待機するという点でモーダルで動作する必要があります。 Windows APIをよく知っている人は、メニュー項目が選択されるまで待機するTrackPopupMenu関数と類似しているかもしれません。GTK +アプリケーションのモーダルループ

私がここでやろうとしているのは、Windows APIを使用して「2次メッセージループ」を実行するのと同じです。それはGTK +でどうやって行なわれますか?

答えて

1

gtk_main_iteration_do(FALSE);に電話すると、アプリケーションをブロックすることなく(FALSE)GTK +イベントシステムを「ポンピング」できます。

+0

ジョブ終了後、gtk_mainを呼び出してgtk_main_quitを呼び出しても問題はありませんか?たとえば、クライアント領域内のポイントを選択するようにユーザーに促す関数を記述したいとします。私はbutton-press-eventのシグナルハンドラを設定し、gtk_mainを呼び出します。ハンドラでは、ポイントが選択されると、ポイントをどこかに保存し、gtk_main_quitを呼び出して、最も内側のgtk_mainを返します。これはお勧めですか? –

0

GtkWindowの場合、gtk_window_set_modalを使用して、GtkWidgetではなくモーダルが可能です。それは理にかなっています。そうでなければ、ウィンドウがポップアップしていなければ、ユーザーは何をやりとりするか分からないでしょう。

+0

この場合、私はモーダルウィンドウを使用していません。私はちょうどモーダルで動作する関数が必要です。この関数は、ポイントを選択するようにユーザに指示し、そのポイントが選択されるまで戻りません。 –

関連する問題