| MacOS X | ![]() |
Windows XP | ![]() |
Windows Vista | ![]() |
|---|
プログレスバーは処理の進捗率を表示するためのコントロールである。このコントロールは表示専用で、ユーザーが操作することはできない。バーの両端が進捗率0%と100%を表し、その間の位置を示すような表示を行うことで、現在の進捗率を表示する。大抵野場合はバーが0%の端から塗りつぶされていくような表示が行われる。また、バーの向きは横向きが一般的だが、まれに縦向きのものある。
何らかの処理のために、比較的長時間ユーザーを待たせることになる場合は、いつまで待てば良いのか、どのくらいまで作業が進んでいるのかをユーザーに伝える必要がある。プログレスバーは、必要となる情報のうち、作業の進捗率を表示するものである。従って、プログレスバーと共に現在の処理内容や処理時間などの表示を行うのが一般的である。
プログレスバーのバーは、基本的には均等な時間間隔で進んでいくことが期待される。99%で長時間止まったりするようなプログレスパーは好ましくないし、バーの進みが戻ったりするようなものは論外である。
進捗率を表示するためには、処理を始める前に全体の処理量が分かっていなければならないが、処理を行わないと処理量が分からない、あるいは処理量を調べるのにも処理を行うのと同じくらいの時間がかかる場合には、それは難しい要求になる。そういった場合でも処理を行いながら全体の処理量を予想することでプログレスバーを表示することは可能だが、そもそもプログレスバーを使用するのが適切な状況ではないため、色々と好ましくないことが起こる。
全体の作業量を求めるための処理にも、それなりの時間がかかる場合がある。たとえばファイルのコピーなどを行う場合は、コピー対象の領域を走査し、ファイルをひとつひとつ調べてコピーしようとしているファイルの個数や容量を求める必要がある。
とはいえ進捗率がなかなか0%から進まないというのも、なかなか進捗表示が表示されないというのも、あまり好ましくない。そこで、プログレスバーの表示形態のひとつとして、まだ全体の作業量が確定していないという未確定状態を表すものが用意されている。作業量を算出している間はこの未確定状態の表示にし、作業量が確定したら進捗率0%の表示にするという使い方をする。
未確定状態の典型的な形態は、まるで床屋の看板のように、斜めの縞模様が流れていくようなアニメーションを行うものである。そのためbarbar poleスタイルと呼ばれることもある。
処理によっては結局最後まで全体の処理量が確定しないというものもあるが、そのような処理の進捗表示に未確定状態のプログレスバーを使用するのは好ましくない。未確定状態のプログレスバーはあくまでも過渡状態で、その後に通常のプログレスバーに変化することが期待されるからだ。
![[図]](imgs/progress-bar-macosx-2.png)
チェイシングアロー
![[図]](imgs/progress-bar-macosx-3.png)
スピニングスタイル
したがって、進捗表示と単に何か処理を行っている事を示す表示とは別の表現をする必要がある。Mac OSではそれ専用の「チェイシングアロー」、Mac OS Xでは「スピニングスタイル」というものが用意されているが、一般的にはこの表示方法は確立しておらず、アプリケーションごとに独自に実装されている。たとえばNetscape NavigatorやInternet Explorerのロゴのアニメーションや、WindowsのExplorerの懐中電灯のアニメーションがそういったものである。
りゅう/rryu@t3.rim.or.jp