「GNOMEフレームワーク」の版間の差分

削除された内容 追加された内容
章の構成を変更。どうやってアプリを作れるのか「GNOME用のGUIアプリの作り方」という節にまとめる。
95 行
 
===== 各種"オブジェクト"の配置について =====
 
gnome-panelは基本的にはランチャーであり、各アプリケーションの起動を行います。ここで、ランチャーを使うためには、そのランチャーに、どのようなアプリケーションをどのコマンドで起動するかなどの情報を与える必要があります。GNOMEではこの目的で[[w:en:gconf]]と呼ばれるライブラリを使います。gconfはGNOMEアプリケーションの様々な設定を記録するためのライブラリです。<!-- また、gconfdと呼ばれるサーバを用いて、設定を動的にアプリケーションに伝えることができます。-->
ここではまず設定の内容がgnome-panelに伝達されたとして、それを用いてどのように実際に表示される内容が構築されるかについて見て行きます。
104 ⟶ 103行目:
 
GUI要素を自由に配置できるgtk+ウィジェットとしてGtkFixedウィジェットがあげられます。このウィジェットはGtkContainerクラスを継承しており、いくつかの別のウィジェットをパックする事ができます。また、ウィジェット内でパックしたウィジェットの場所を指定することができます。GtkFixedを使ったサンプルとして次に例をあげます。
 
== GNOME用のGUIアプリの作り方 ==
=== 方法 ===
==== インストール例 ====
上記のコードを実行できるようにするには、まず、GTKの開発環境をインストールする必要があります。GTKの開発環境の機能は、コンパイラなどです。開発環境をインストールしておかないと、コンパイル自体が不可能です(コンパイルしようとしてもエラーになります)。GTKで開発されたアプリの実行環境と、GTKの開発環境は、別物です。たとえばリナックスのディストリビューションのひとつ Fedora には、GTKの実行環境が標準でインストールされており、そのため、多くのGTK(で開発された)アプリを動かせます。しかし、GTKの開発環境そのものは、Fedoraには標準ではインストールされていません。
 
そのため、たとえばOSがFedoraなら、GTKの開発環境をインストールするため、コマンド端末で、
sudo dnf install gtk3-devel
などのコマンドを実行して、GTKの開発環境(Fedoraの場合、「gtk3-devel」などの名前)をインストールします。(なお、「gtk3」の「3」は単なるバージョン番号。将来的にもっと高いバージョン番号になる可能性があるので、読者は適宜、判断してください。)
 
==== コーディング ====
その後、テキストエディタで、次のようにコードを書いてください。
 
<source lang=c>
135 ⟶ 146行目:
:[[画像:gnome_fixed.png]]
 
GTKは、C言語など既存のプログラミング言語の上に、GTKをインクルードする仕組みを用いて、GTKは使用されます。
 
なので、まず、上記のコードを書いたら、C言語として保存してください。つまり、拡張子が「.c」になります。
 
例えば、上記のコードを、テスト用のファイルという意味で「tesuto.c」で保存したとしましょう。
 
上記のコードを実行できるようにするには、コンパイルする必要があります。
上記のコードを実行できるようにするには、まず、GTKの開発環境をインストールする必要があります。GTKの開発環境の機能は、コンパイラなどです。開発環境をインストールしておかないと、コンパイル自体が不可能です(コンパイルしようとしてもエラーになります)。GTKで開発されたアプリの実行環境と、GTKの開発環境は、別物です。たとえばリナックスのディストリビューションのひとつ Fedora には、GTKの実行環境が標準でインストールされており、そのため、多くのGTK(で開発された)アプリを動かせます。しかし、GTKの開発環境そのものは、Fedoraには標準ではインストールされていません。
 
そのため、たとえばOSがFedoraなら、GTKの開発環境をインストールするため、コマンド端末で、
sudo dnf install gtk3-devel
などのコマンドを実行して、GTKの開発環境(Fedoraの場合、「gtk3-devel」などの名前)をインストールします。(なお、「gtk3」の「3」は単なるバージョン番号。将来的にもっと高いバージョン番号になる可能性があるので、読者は適宜、判断してください。)
 
 
これをコンパイルするため、オブジェクトファル名がたとえば「obuje」なら、
153 ⟶ 159行目:
 
 
コンパイルできたら、あとは実行するだけです。
実行すると、作成したウィンドウが表示されます。
 
=== 解説 ===
さて、上のコードの例ではGtkFixedウィジェットを作成しボタン、ラベルのウィジェットをGtkFixedウィジェット内に配置しています。このようにウィジェット内のどこにでも他のウィジェットを収納できるウィジェットがGtkFixedウィジェットです。
 
161 ⟶ 171行目:
ここまでで、gnome-panel内で"オブジェクト"の配置はGtkFixedクラスの機能によってなされていることが分かりました。他に興味ある点としては、個々の"オブジェクト"がどのように定義されているかや、オブジェクトを導入するための操作などがあります。例えば、"オブジェクト"が配置できる部分を右クリックすると、メニューが開き、追加するオブジェクトを選ぶことができます。この操作はGtkMenuなどで提供される機能ですが、実際にソースコード中でどのようにGtkMenuが用いられているかも調べることができます。
 
== 各論 ==
===== "メニューバー"オブジェクトについて =====