| MacOS X | ![]() |
![]() |
|---|---|---|
| GTK | ![]() |
![]() |
ポップアップメニューはドロップダウンリストと同じ機能を有したものである。すなわち、列挙された選択肢の中からひとつを選択するという機能を持っている。ちなみに「ポップアップメニュー」はMacOSでの呼称であり、JavaのAWTでは「チョイス」、SX-WINDOWでは「アコーディオンメニュー」、他では「オプションメニュー」と呼ばれており、その呼び名は渾沌としている。
さて、機能的にはドロップダウンリストと同様の機能を持つポップアップメニューだが、ドロップダウンリストと同一視されないのには、それなりの理由がある。その最大の理由は、クリックしたときに出てくるものがリストではなくメニューであるという点である。このメニューとリストの操作性の差が同一視されない理由となる。
ポップアップメニューをクリックすると、メニューがポップアップしてくる。ポップアップとはポンと飛び出すような感じのことを言う。この時、現在選択している項目がコントロールの直上というかマウスカーソルの直下に表示されるという点がミソである。メニューの真ん中辺りを選択している場合は、コントロールを中心に上下にメニューが伸びる感じになる。このような動作がドロップダウンリストと同一視されない由縁である。
また、メニューの大きさは、全てのメニュー項目がちょうど収まるように自動的に調節される。これは、ドロップダウンリストのように、数個分だけスクロールしなければ全体を見ることができないという状況は発生しないということを示している。とはいっても項目が増えていけば、いずれ画面上に表示し切れないほどの量になってしまうので、常に全ての選択肢を見ることができるとは言い切れない。このように画面に収まり切らないような長いメニューの場合、メニューの上下に矢印状のものが表示され、スクロールが発生する。矢印の上にマウスカーソルを持ってくることにより、スクロールすることができる。
ポップアップメニューでは、それ以外にもスクロールが発生する状況がある。選択中の項目がコントロールの上に来るように表示されるという事をよく考えてみよう。たとえば十分に長いメニューの一番上を選択しているとしよう。そしてポップアップメニューは画面下部に位置している。この時メニューを表示したらどうなるだろうか。普通に表示したら画面からはみ出してしまうことは間違いない。つまり、メニュー自体は画面に十分収まる大きさであっても、選択した項目の位置、もしくはポップアップメニューの表示位置によってはメニューが画面外にはみ出す可能性があるのだ。
![[スクリーンショット]](imgs/popup-menu-osx3.png)
スクロールするポップアップメニュー
このような場合どうなるかというと、メニュー自体の大きさはいつも通りだが、中身が片寄り、空白の部分が生じるようになる。そして例のスクロールするための矢印がメニューに表示される。メニューの一番上の項目を選択している状態ならば、大部分が空っぽな枠が表示されるという不可思議な状態になる。
メニューがスクロールするというのは、それなりに特異な事態なので、これは避けるべきであろう。あまり多くの項目をポップアップメニューに入れないということで大抵は回避できるが、ウインドウはどこにでも移動できるので、ある意味避けようが無い。とはいえ、ひとつだけ納得できる目安がある。それはどう表示してもポップアップメニューのメニューがウインドウの外にはみ出さないようにするということである。これならばウインドウが画面外にはみ出さない限りメニューのスクロールは発生しない。たとえスクロールが発生したとしても、ウインドウが画面外にはみ出しているという時点で既に特異な状況なので、それにより特異な状況が発生しても、仕方がないと言えるだろう。
りゅう/rryu@t3.rim.or.jp