KDE 3.0 アーキテクチャ/システムリソースへのアクセス/アイコンのローディング - 旧 Wiki アーカイブ

!

このページは10年以上前の非常に古いものであり、歴史的資料保存を目的として維持しています。
現在の状況とは大きく異なる場合がありますので、原則として参考にはしないで下さい。

KDE 3.0 アーキテクチャ

オリジナル : http://developer.kde.org/documentation/library/kdeqt/kde3arch/iconloader.html


Loading and installing icons in KDE

1. 初めに

アイコンはどのデスクトップ環境においても重要なユーザーインターフェースの一部です。
ユーザーの設定やビデオハードウェアが原因で、同じアイコンでも、異なったサイズや色深度で表示されます。
これを制御するために、アイコンを保存し、またアクセスする為の標準的な方法が開発されています。

2. Loading icons

アイコンローダーへのアクセス

アイコンはKIconLoader?クラスを用いてロードされます。
どのKDEアプリケーションもグローバルアイコンローダを所持しています。
このオブジェクトには下の様な方法でアクセスできます。

#include <kglobal.h>
#include <kiconloader.h>

KIconLoader *loader = KGlobal::iconLoader();

loadIconを使ってアイコンをロード

アイコンローダはアイコンをロードし、キャッシュを作り、エフェクトを加えます。 アイコンをロードするには、loadIconメソッドを使います。このように定義されています。

QPixmap loadIcon(QString name, int group, int size=0,
                int state=KIcon::DefaultState, QString *path_store=0L,
                bool canReturnNull=false);

上のように、多くの引数を取ります。最初の二つは最も重要です。

nameロードするアイコンの名前。拡張子なしにiconの名前を指定しなければなりません。
groupアイコングループ。下で説明します.

アイコングループ

アイコングル‐プという考え方はKDEのアイコンの仕組みのなかで重要な概念です。
アイコングループはそのアイコンがスクリーン上のどこで使用されるかを現しています。
KDEユーザーはアイコンのサイズと視覚効果を設定できるので、これは関連性があります。
アイコングループをアイコンローダーに渡すということは、実際にはどのアイコンの実体をロードするのかをローダーに指定するということになります。
グループの引数を取ることによって、アイコンローダーはKDEデスクトップ全体のアイコンの一貫した、そして設定可能な見映えを可能にします。

例 : ユーザーは32ピクセルのアイコンをメインツールバーに設定できます。

利用できるアイコングループは下の通りです。これら全てはKIconクラスで宣言されています。
なので実際にはこれらの前にKIcon::をつけて使用します。

Desktopデスクトップ上のアイコン。ファイルマネージャーやそれに似た場所で使用されます。
Toolbar通常のツールバー用
MainToolbar?メインツールバー用のアイコン。アプリケーションはいくつかのツールバーを持ちますが、これはメインツールバー用です。通常は外のツールバーよりも大きなアイコンを持ちます。
Small例えばポップアップメニューやリストビュー、ツリーリストで用いられるような様々な小アイコン
Userアプリケーション特化のアイコンをロードするためのグループ。これについてはsection3を見て下さい。

Desktopグループで"kfind"アイコンをロードするには以下のようにします。

QPixmap icon;
icon = loader->loadIcon("kfind", KIcon::Desktop);

外のパラメータも見てみましょう。

size特定のアイコングループに設定されたサイズを上書きします。影響はそのグループのアイコン全体に及びます。
stateアイコンの状態を示します。stateはKIcon::DefaultState?、KIcon::ActiveState?、KIcon::DisableState?のうちのどれかです。例えばツールバーのボタンは、マウスが上に有るときはactiveに、有効でない時はdisableに、それ以外のときはdefaultになっています。それぞれの状態は視覚的にも変ります。
path_storeアイコンがどこからロードされたか知りたければ、ここにQStringのポインタを渡すとアイコンのパスが保管されます。
canReturnNull?アイコンが見付からなかった場合、結果はこのパラメータに依存します。canReturnNULLがtrueなら、null pixmapが返されます。そうでなければ"unknown"アイコンが返されます。

3.アイコンのインストール

アイコンは様々なサイズや色深度になります。これをテーマアイコンと呼ぶことにします。
決まった形で表示されるものをテーマ化されていないアイコンと呼ぶことにします。

デフォルトアイコンサイズ

標準のアイコンのサイズは以下の通りです。

40 Colors: 16x16 pixels 22x22 pixels 32x32 pixels

Truecolor: 22x22 pixels 32x32 pixels 48x48 pixels

それぞれのサイズのアイコンサイズはアイコングループに設定できることを覚えて置いてください。

アイコンコンテクスト

テーマアイコンはディレクトリに階層的に保存されます。それは1.色深度、2.サイズ、3.コンテキストによります。
コンテキストというのはKDEアイコン機構で導入された新しい概念です。
アイコンが意味しているものがコンテキストです。標準のコンテキストには次のようなものがあります。

action例えば"Open"や"Save"といったツールバー内のアクションを示します
application"kfind"のようなアプリケーションを示します
device"floppy"や"mount"といったデバイスに関係の有るものを示します
filesystem"directory"や"socket"、"trashcan"といったファイルシステムに関連するものを示します
mimetype"text/html"のようなmimetypeを表します

コンテキストはアイコンを選ぶ際に非常に重要となります。
アプリケーションがユーザーにアイコンを選んでもらう時、例えばツールバーなら、KDEにインストールされたすべてのアイコンを表示するのはユーザーフレンドリーではありません。
対照的に、ユーザーの為にに"action"アイコンだけを表示するのは非常に良いことです。