9 メニューバー(GtkMenuBar)とツールバー(GtkToolbar)

サンプル9

 この章では、GtkMenuBarやGtkToolbarといったコマンド系ウィジェットを取り上げます。

 これらの作成方法には、スクリプトのみで作成するものと、XML風フォーマットで書かれた構造定義を読み込んで作成するものの2つがありますが、ここでは、後者の方法について説明します。

この方法では、GtkAction、GtkActionGroup、GtkUIManager、の3つのオブジェクトを使う必要があります。

GtkActionは、プログラムのインターフェース上でメニュー項目やツールバー項目として表示される、ユーザが利用できるコマンドや機能を表します。場合によって、派生オブジェクトのGtkRadioActionやGtkToggleActionを使う必要があります。

GtkActionGroupは、生成したGtkActionのインスタンスを分類するためのフォルダのようなものです。ただ、分類する必要がなくても、必ず1つはインスタンスを作って、そこに生成したGtkActionを登録する必要があります。

GtkUIManagerは、構造定義文字列と、GtkActionを登録済みのGtkActionGroupを元に、各ウィジェットを生成してくれます。

 これらのオブジェクトを使って、コマンド系ウィジェットをウィンドウに組み込むまでの流れは、以下のようになります。

  1.  UIManager、ActionGroup、および必要な数のActionを生成

  2.  生成したAction群をActionGroupに登録

  3.  UIManagerに、ActionGroupとUI構造を定義した文字列を渡して、ウィジェットを生成

  4.  UIManagerがAction群から集めたキーボードショートカット情報をウィンドウに登録

  5.  UIManagerからウィジェットを受け取って、他のウィジェットと同様に、ウィンドウ(上のレイアウトコンテナ)に組み込む

 次のページから、サンプルプログラムのスクリプトとその説明になります。

プログラム全体としては長めですが、各種プリプロセッサ命令、似た作業の繰り返し、シグナルハンドラがかなりの割合を占めているので、構成としては、今までのサンプルとあまり変わりません。

Prev - Table of contents - Next