> ホーム > 知恵と勇気道具 > GUI なオブジェクト指向

GUI なオブジェクト指向

Contents

最近のパソコンはマウスで使います。これを Graphical User Interface、GUI(「じーゆーあい」と読むのが正しいらしい。「ぐい」でもいいじゃんと思うんだけど。)と呼んでいますが、実は GUI ってのは「キーボードではなくマウスで使う」ことより、「その発想がキーボードからコマンドを入力していた頃と違う」ことが重要なんです。逆にマウスを使わなくたってこの発想を利用することは可能です。

ここでは一般的なマウスによる操作のとき、意外に引っかかる部分に焦点を当て、その解決方法を考えます。

「何を」「どうする」?

「機能を実行するまで」の今昔

MS-DOSの頃、ワープロ専用機の頃、何をするにも最初に押すのは「メニュー」ボタンでした。一太郎では [ ESC ]、Lotus1-2-3 では [ F1 ] ですね。この頃にパソコンをマスターした人はこの環境から逃れられない人も多いと思います。未だに [ ESC ] メニューじゃないと使えないって人、案外多いですよね。

その頃のコンピュータ上の作業は [ メニュー ] → [ 機能を選ぶ ] → [ 対象を選ぶ ] という順番でした。

ところがマウスを使うパソコンてやつは順番が反対なんですよね。[ 対象を選ぶ ] → [ メニューから機能を選ぶ ] という順番になります。

この違いをはっきり意識してもらえないと、これ以降の内容はちょっとつらくなります。なんにしろ、今のパソコンは「対象が先」なんです。

オブジェクト指向は実は日本語だ

この順番は、海の向こうから来たかのような感じがしますが、実はとっても身近です。これ、日本語の語順と同じなんですよ。逆にコマンドが先にくるのは英語の語順です。

ね。そう考えるとあんまり難しく感じないでしょ。オブジェクト指向とか GUI とか言われるとちょっと怖いけど(わざとそういうタイトルをつけてるんですが)、日本語の語順ですと言われれば、少しは抵抗なくなるでしょ。

[ ↑ content ↑ ]

メニュー変幻自在

選べないメニュー
画像を開いていないので保存などのメニューが使えなくなっている様子

直感的で簡単なはずな GUI も、実際に使うにはけっこう難しく感じます。なんででしょ。この理由の一部に、「さっき教わった通りのメニューが出てこない」があると思います。

誰でも身近にパソコンに強い人の一人や二人いるでしょう。どういうわけか、パソコンに強い人ってちょっとそっけなかったり、妙に決め付けて喋ったりしますが(耳が痛いなー)、ま、それはともかく、そういうパソコンに強い人に教えてもらうことって、実によくあると思います。しかし、なぜか教えてもらったとおりにできないことが多いものです。その一つが「さっきと違う」です。

システムは監た!

なんで違うのか。答えは簡単。「さっきと選んでいるものが違うから」です。言われた通りにやってるつもりでも、同じようにできていないからです。

さっきやったように文字を選んでいますか? 画像を選んでいますか? 同じアイコンを選んでいますか? いや、それよりもさっきとソフトが違うんじゃないですか?

よくやる失敗は何の気なしに意図しないところをクリックしてしまうことです。特にウィンドウのないところ。ここをクリックするのは、実はすごく重大な意味を持っています。何もウィンドウのないところ、すなわちデスクトップをクリックすると、Mac では Finder、Windows では Explorer と呼ばれる、システムで最も基本的な操作(フォルダを作るとか動かすとか)を行うソフトに切り替わります。これが分からないとけっこう悲惨です。(Mac の場合はデスクトップをクリックすると今使っているソフトのウィンドウが見えなくなるので違いが分かりやすいんじゃないかな? Windows は色が変わるだけだから分かりにくいように思います。)

意図せずにしたクリック、その瞬間、苦労した選択は解除されてしまいます。ほら、思った通りのところが反転していますか? 意外に思ったとおりには行ってないもんですぜ。そして、そのことをシステムは「知っている」のです。あなたの選択範囲に忠実に、システムは実現できる機能をきちんと判断して提示してくれます。

例えば何も範囲を選択していなければ [ 編集 ] → [ 切り取り ] などのメニューは選べません。だって、切り取る対象が分からないでしょ。

[ ↑ content ↑ ]

コンテキストメニュー

また、最近はコンテキストメニューというのが Windows にも Mac にも導入されていますが、これもそうですね。(Windows では右クリック、Mac では長く押しっぱなしにするか Control + クリックでメニューが出てきます)例えばブラウザで画像を表示している状態でコンテキストメニューを出すと画像の保存などのメニューが出てきますし、アイコンでコンテキストメニューを出すと、そのアイコンについての情報を表示できたりします。何を選択しているのか、システムが分かっているからできる芸当です。

日本語入力モード

アプリケーションが選択されているときの IME の状態

アプリケーションが選択されている状態。日本語入力がオンになっている。

デスクトップをクリックしたときの IME の状態

デスクトップ上でクリックすると日本語入力がオフになった。

タスクバーをクリックしたときのタスクバーの状態

タスクバーをクリックすると、そもそも入力することができないため、モードのところにバツがついた。

何が選択されているかの影響をかなり受けるのはもう一つ、日本語入力のモードです。実はこれ、使うソフトごとに日本語入力のモードを覚えてくれるんです。たくさんのソフトを切り替えながら作業する私のようなタイプにはけっこう便利な機能なんですが、分からない人には不便なだけですね。なぜなら、日本語入力のモードを切り替えるために、さっきの失敗、Explorer や Finder を選択してしまう、という失敗をしてしまうからです。日本語入力のモードを切り替えるためには、正確にここをクリックするか、キーボードで切り替えましょう。(しかし、正確にクリックしようにもちょっと小さいですよね。あと、どうしてタスクバーにあるんだろ、これ。アプリごとに覚えられるならアプリごとのタイトルバーに表示すりゃいいのに。いまどきの大画面ではタスクバーを見に行くだけで大変ですよ。)

(右の図では選択されているウィンドウのバーが白、選択されていないものがグレーになる設定のスクリーンショットです。また、タスクバーを画面の上に表示するようにしてありますので、お使いの画面とはかなり違う見え方をしていると思います。)

[ ↑ content ↑ ]

ダブルクリックに頼るな、アイコンに頼るな

ダブルクリックは本当に「開く」なのか?

ダブルクリックの意味はアプリとデータで違います。アプリケーションの場合はそのアプリケーションの「実行」ですが、データの場合は、関連付けられたアプリケーションにそのデータが渡されます。

一般にこれを「開く」と呼ぶわけですが、果たして自分の意図通りに開けているでしょうか?

案外できないでしょ? これは、そのデータがどのアプリと関連付けられているかを分かっていないからです。

アイコンはどうやって決まる?

その前に、今見ているアイコンはどうやって決まっているのかをちょっと勉強しましょう。何事も急がば回れってね。

アイコンの情報はアプリの中に

Windows も Mac も、ファイルをアイコンで表すことができるわけですが、このアイコンの絵(あぁ、頭が頭痛)はそれを開くアプリケーションが持っています。(実際にはシステムがアイコンキャッシュと呼ばれるところにこの情報を保存しているのですが。)自分で作ったファイルを、そのアプリケーションが入っていないパソコンで見てみると、思ったようなアイコンでは表示されませんね。つまりそういうことなんです。主導権はアプリケーションの方にあります。

データとアプリとの関連付け

もうひとつ、このアプリケーションの中のアイコンとファイルを結びつける機能がシステムの中にあります。これが Windows 風に言うと関連付けです。

Windows の場合
システムがデータとアプリの関係を持っている。

Windows ではこれをシステムが一括して管理します。このときの判断の基準は拡張子です。拡張子そのものについては「拡張子」を参照してもらうことにして、ま、とにかく拡張子というものがアイコンを決めるときに重要な働きをしている、ということだけは覚えておいてください。

で、その拡張子に対してアプリケーションを一括して割り当てているので、例えば同じ機能を持ったソフトをインストールすると、新しいソフトにすべて関連付けが書き換えられてしまったりします。アイコンなどもこのとき一気に変わってしまいます。このおかげでかなりの混乱が生まれます。「あれ、昨日見たときとアイコンが違う。」「この間はこれをダブルクリックしたら○○で開いたのに、今度は△△になってる。」という現象が実によく起こります。

MacOS の場合
データの中にアプリとの関係情報が入っている

対して Mac の場合は一つ一つのファイルの中に、どのソフトと関連付けるかどうかの情報が入っています。これは「クリエータ」と呼ばれるもので、読んで字の如し、そのファイルを作ったアプリケーションに自動的に関連付けられます。関連付けられたアプリケーションの情報に基づいてアイコンが決まります。Mac では拡張子という考え方はなかったので、このような方法になっています。

しかしこの方法はなかなか秀逸です。なぜなら、どのアプリケーションに関連付けられるか、ユーザーの具体的な操作で決まるからです。

アプリケーションをインストールしたらいきなり関連付けが変わるのと、あるアプリを使って作ったファイルが自動的にそのアプリに関連付けられるのと、分かりやすさで言ったら圧倒的に後者の方が分かりやすいでしょ。だって、アプリをインストールするときに、普通の人はそのアプリがどんな拡張子を持ったファイルを対象にしているかなんて、意識していないし、意識できないように標準状態の Windows は拡張子を表示してくれないし、だいたいインストールのときの細かい注意書きなんて、フツー読まないでしょ?

考えれば考えるほど、Windows は初心者には優しくない気がするなぁ。

[ ↑ content ↑ ]

アイコンは案外狂う

アイコンというのはデータファイルではなく、アプリケーション側に主導権があることが分かりました。そして新しいソフトを追加したりすることで簡単に変わってしまうことも分かりました。

しかし、それ以外にアイコンが狂うことって、実はよくあります。なんで狂ってしまうのか、細かいところは分かりませんが、簡単に言ってしまえば、アイコンを管理している部分の情報が矛盾してしまうんです。

これはファイルの中身が壊れたりすることとは無関係に起きます。同時に関連付けの情報が狂うこともありますが、狂わないこともあります。どっちにしろ、案外アテにはならないものなんです。

実は、「アイコンが変わった」ってことは、それほどビビることではありません

ファイルは拡張子で識別しろ

「そんなこと言ったって…、じゃあ何を頼りにして判断すればいいの」と思った方、拡張子を利用してください。拡張子こそが、狂うことなくファイルの種類を判断することのできる、安心できる材料です。

なに、「うちの Windows では拡張子なんか表示されないよ」「うち、Mac だし、拡張子なんかダサイし」だって? だまらっしゃい。今言ったように、関連付けもアイコンも、あんまりアテにはならんのです。でもファイルの名前はいきなり変わったりしないからね。

Windows の人は早速設定を変更しておいてください。

[ ↑ content ↑ ]

ドラッグ&ドロップで開け

興味のある人は関連付けの変更方法、クリエータの変更ソフトに関する情報を探してください。そういう小難しいことをせずに、とりあえずどうしたらいいのか知りたい人は以下を読んでください。

最も簡単で目的のソフトで確実にデータファイルを開く方法は、データのアイコンをアプリのアイコンにドラッグ&ドロップで放り込むことです。

ドラッグ&ドロップで画像を開こうとしているところ

そりゃそうですよね。「このファイルをこのソフトで開きたい」ということを、オブジェクト指向な GUI に則って、これ以上なく明確に宣言しているわけですから。

右は画像ファイルを Photoshop で開こうとしているところです。少し分かりにくいかもしれませんが、この画像ファイルは Photoshop には関連付けられていません。でも、ドラッグ&ドロップすれば、そんなことはお構いなしに Photoshop で開くことができるんです。

でもこの方法を使うためにはソフトのアイコンが見える場所にある必要があります。いちばんいいのはデスクトップなんでしょうが、案外デスクトップというのは見えないものです。壁紙を設定しても、壁紙を見てないことの方が多いでしょ? 同じことです。デスクトップって、結局一時的なデータ保管場所になっちゃうのがオチです。

じゃあ、どうしましょう。

エイリアスフォルダやランチャを用意する 〜 MacOS 〜

Mac の場合は MacOS 8 から、ウィンドウをデスクトップの下端でタブにすることができたり、そのタブやフォルダにドラッグ&ドロップでアイコンを入れようとすると、自動的にそのフォルダを開くなどの機能が実現されています。これがすごく便利に使えます。

具体的にはデスクトップにフォルダやタブを用意し、普段使うソフトのエイリアスをまとめて入れておくんです。そうすれば実に手軽にデータをソフトに放り込むことができます。使うソフトがいくつあっても、アイコン1個分のスペースさえ確保できればオッケーです。

これができない場合はランチャ(ローンチャ)を用意します。System 7.x , MacOS 7.x の場合はほぼ必須アイテムとも呼べると思います。もともと Mac は Windows と違ってスタートメニューというものがありませんから、こういう「手軽にソフトを起動するためのソフト」が充実しています。参考までに筆者は LaunchStation を使っています。

(OS X ではこのタブ機能がしばらく消えていましたが、Panther(10.3) から復活しています。)

コンテキストメニューの [ 送る ] を利用する 〜 Windows 〜

同じことを Windows でやろうにも、Windows のフォルダは自動的に開いてくれたりしません。そこで Windows ではコンテキストメニューの [ 送る ] を利用します。

コンテキストメニューの [ 送る ]

ちょっとその辺のデータファイルを右クリックしてみてください。[ 送る ] って文字が見えるでしょ? これはちゃんとどのアイコンの上で右クリックしたかを判断して現われてくれるもので、例えばマイコンピュータのアイコンの上でクリックしても出てきません。

[ 送る ] の実体は \Windows\SendTo というフォルダです。(NT の場合は \WINNT\Profiles\ユーザー名\SendTo フォルダです。2000 の場合は \Documents and Settings\ユーザー名\SendTo で、標準状態では見れないっす。)ここに、使うソフトのショートカットを入れておきましょう。そうすると [ 送る ] の中に今入れたソフトの名前が出てくると思います。逆に不必要なものは削ることができます。フロッピーとか、最近じゃあんまり使わないでしょ。

[ 開く ] と何が違うんだ、と思うかもしれませんが、[ 開く ] やその他の [ 編集 ] などはシステムが管理している情報で、このメニューを選ぶのはダブルクリックするのと同じです。

そうではなくて、ここでは自分で意識して、意図的に、明示的にデータをソフトに送ってやるのがキモなんです。この方法を使えば、アイコンがいくら狂おうが、関連付けが狂おうが関係なく、目的のソフトでデータを編集することができるようになります。

[ ↑ content ↑ ]