C で MVC デザイン パターンを使用して GUI アプリケーションを作成しています。Connect 4 のゲームを意図しています。
コントローラーが GUI にデータを送信できるようにしたい。GUI には、ボードやボタンなどの開始要素を描画して、チェッカーをドロップする列を選択するメソッドがあります。
このメソッドの最後で、GUI を画面に表示するために gtk_main() を呼び出す必要があります。ビューとコントローラー クラスの間でデータを送信できるようにしたいのですが、このメソッドを呼び出した後、制御がコントローラー クラスに戻されません。
明確にするために、メイン メソッドはコントローラー クラスにあり、ビュー クラスの「setup」メソッドを呼び出します。gtk_main() 呼び出しは「setup」メソッドの最後にあります。
これを解決するにはどうすればよいですか?
また、たとえば、私のビューには次のメソッドがあります。
void drop_checker(GtkWidget *widget, cairo_t *cr, gint col, gint row, int r, int g, int b)
ウィジェットと cr 変数にアクセスできるので、GTK コールバックを使用してこれを呼び出すのは簡単ですが、コントローラー クラスからこれを呼び出す方法がわかりません。
これはアプリケーションの設計上の誤りですか、それとも技術的な誤解ですか?