Table of Contents
この章ではシンプルな知恵の集合として、gtkmmアプリケーションを製作する際の一般的なスタイルガイドラインとヒントを説明します。
GNU autoconfとautomakeを使いましょう!どちらもあなたの友達です:)
AutomakeはCのファイルを走査し、それらの依存構造を決定してMakefileを生成します。このおかげでファイルは正しい順序でコンパイルされます。
Autoconfは自動的にインストールオプションを設定することを可能にし、さまざまなシステム上の違いをうまく扱って移植性を高めることができます。
ウィジットを継承したサブクラスを使って、コードを上手にまとめましょう。少なくともメインのWindowは継承したほうがいいでしょう。そうしておいて、子ウィジットとシグナルハンドラをそのクラスのメンバにしましょう。
ポインタを渡すよりも、自分でシグナルを作成して使いましょう。オブジェクト同士はシグナルとシグナルハンドラによって互いに通信することができます。これはお互いのポインタを保持しながらメソッドを呼び出す方法よりも圧倒的に単純です。gtkmmのクラスでは特別にSigc::Signalクラスを使っていますが、あなたはlibsigc++で解説されている、通常のsigc::signalクラスを使った方がいいでしょう。
ほとんどのアプリケーションは、ただひとつのWindowクラスか、ひとつのメインウィンドウを使っています。このようなアプリケーションではGtk::Main::run(Gtk::Window&)をオーバーロードしています。このメソッドはウィンドウを表示し、それが隠れたときにリターンします。これが起きるのは、ユーザーがウィンドウを閉じたときか、プログラムでウィンドウをhide()したときでしょう。ユーザがウィンドウを閉じるのを中止させることもできます(これは例えば、セーブしていない変更があるときなどに使えます)。そうするにはGtk::Window::on_delete_event()をオーバーライドしてくさい。
私たちの例のなかではこのテクニックをたくさん使っています。