以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1(a)は、本発明の表示装置の一実施形態である多機能周辺装置10の電気的構成を示すブロック図である。以下、多機能周辺装置10を、「MFP10」と称す。MFP10は、印刷機能、スキャン機能、コピー機能、ファクシミリ機能などの各種機能を有している。
MFP10には、CPU11、ROM12、RAM13、NVRAM14、操作キー15、LCD16、タッチパネル17、スキャナ部18、プリンタ部19、NCU20、モデム21、ネットワークインターフェイス(以下「ネットワークI/F」と称す)22が主に設けられている。これらの各部は、入出力ポート23を介して互いに接続される。
CPU11は、ROM12、RAM13、NVRAM14に記憶されるプログラムやデータ、あるいは、NCU20を介して送受信される各種信号に従って、MFP10が有する各機能の制御や、入出力ポート23と接続された各部を制御する。ROM12は、CPU11により実行される各種プログラムや、そのプログラムを実行する際に参照する定数やテーブルを記憶する読み出し専用のメモリである。ROM12に格納される各種プログラムは、図6から図8のフローチャートに示す各処理をCPU11に実行させるプログラムを含む。
RAM13は、CPU11が、ROM12に格納される各種プログラムを実行するにあたり、各種データを一時的に記憶するためのテンポラリエリアを有する書換可能な揮発性のメモリである。NVRAM14は、不揮発性のRAMである。NVRAM14には、例えば、LCD16に表示可能な各画面ついて、画面に含まれる操作ボタンの配置に関する情報などを含む画面情報や、各画面の階層構造を特定する情報などが記憶されている。
操作キー15は、MFP10の筐体に設けられるメカニカルキーであり、各種の設定値や指示などをユーザから受け付ける。LCD16は、液晶表示装置であり、各種画面を表示する。LCD16の画面には、タッチパネル17がLCD16に重ねて設けられる。
タッチパネル17は、例えば、指や棒などの指示体の接触または接近によるタッチ操作が入力された場合に、当該タッチ操作の入力位置を検知する。CPU11は、タッチパネル17が検知した入力位置を当該タッチパネル17から受け付けた場合に、当該入力位置に基づき、タッチパネル17に対して行われたタッチ操作を検出する。なお、CPU11は、タッチパネル17から、当該タッチパネル17が検知した入力位置の変化を示す情報を受け付ける構成であってもよい。かかる場合、CPU11は、タッチパネル17から受け付けた、入力位置の変化を示す情報に基づいて、タッチパネル17に対して行われたタッチ操作を検出する。
CPU11が検出し得る「タッチ操作」には、押下操作と、移動操作と、離上操作とが含まれる。押下操作は、タッチ操作を開始するために、指示体を画面にタッチさせる操作である。「タッチする」は、画面に指示体が接触することだけでなく、タッチパネル17に検出される程度に指示体が接近することも含む。移動操作は、押下操作に続いて、当該押下操作によるタッチを維持したまま指示体を移動させる操作である。離上操作は、押下操作または移動操作を終了させるために指示体を画面から離上させる操作である。つまり、離上操作は、タッチ操作を終了させるための操作である。
スキャナ部18は、原稿を読み取って画像データに変換する。プリンタ部19は、画像ファイルに基づく画像を記録用紙に印刷する。モデム21は、FAX送信時には送信すべき画像データを、電話回線網(図示せず)に伝送可能な信号に変調してNCU20を介して送信し、または、電話回線網からNCU20を介して入力された信号を画像データに復調する。NCU20は、図示されない電話回線網の交換機に対して回線を閉結または切断することにより、電話回線網への接続を制御する。ネットワークI/F22は、有線または無線方式によりネットワークを介してサーバなどと通信可能に接続するためのインターフェイスである。
本実施形態のMFP10は、エラーや通知事項が発生した場合に、それら内容をユーザに伝達するための状態表示QをLCD16に表示する。図1(b)に示すように、状態表示Qは、簡潔な内容が表示される一行表示Q1と、一行表示Q1より詳細な内容が表示される詳細表示Q2とから構成される。本実施形態では、画面における表示言語が日本語であるとして説明する。日本語は、横書きでも縦書きでも表示できる言語の1つである。
なお、画面における表示言語が何語(本実施形態では、日本語)であるかを示す言語情報は、例えば、MFP10の設定の1つとしてNVRAM14に記憶されている。CPU11は、MFP10に電源が投入されたことに伴い、NVRAM14に記憶されている言語情報を参照し、表示言語が何語であるかを判断する。
エラーや通知事項が発生した場合、まず、一行表示Q1がLCD16に表示される。詳細は後述するが、一行表示Q1は、LCD16の上側、下側、左側、および右側の4か所のうち、LCD16に表示中の画面に配置されるタップ操作を入力可能な操作ボタンの配置、または、フリック機能を有する画面(すなわち、フリック操作を利用できる画面)であるか否かに応じた位置で表示される。
なお、「タップ操作」は、タッチ操作における押下操作の一態様であり、画面にタッチさせた指示体を移動させずに離上させる操作である。一方、「フリック操作」は、タッチ操作における移動操作の一態様であり、指示体を画面に接触または接近させた後、その指示体を所定方向に軽くはじく操作である。
一行表示Q1は、詳細ボタンQ1aを含む。詳細ボタンQ1aに対するタップ操作がユーザによって入力されると、一行表示Q1に代えて、詳細表示Q2がLCD16の略中央に表示される。詳細ボタンQ1aを設けず、一行表示Q1に対する所定操作(例えば、長押し操作など)が入力された場合に、一行表示Q1に代えて、詳細表示Q2を表示させてもよい。
詳細表示Q2の表示中、操作キー15の1つであるキャンセルキーがユーザにより操作されると、詳細表示Q2を一行表示Q1に戻すことができる。なお、状態表示Q、すなわち、一行表示Q1および詳細表示Q2は、当該表示の対象となるエラーが解消された場合、または、通知事項に対する所定の確認操作がユーザによって入力された場合にLCD16から消去される。
状態表示Qの対象となるエラーとしては、インク切れや、紙づまりなどを例示できる。一方、状態表示Qの対象となる通知事項としては、例えば、インターネット上のサーバから受信したファームウェアの更新通知などを例示できる。
一行表示Q1および詳細表示Q2の内容は、エラーに関するものについては、エラー毎にNVRAM14に予め準備されている。一方、通知事項に関する一行表示Q1および詳細表示Q2の内容は、通知事項の種類に応じて、NVRAM14に予め準備されている場合と、インターネット上のサーバから通知とともに受信する場合とがある。
図2(a)および図2(b)に示すように、一行表示Q1がLCD16の上側または下側に表示される場合、一行表示Q1の表示内容は横書きとされる。一方、図2(c)および図2(d)に示すように、一行表示Q1がLCD16の左側または右側に表示される場合、一行表示Q1の表示内容は縦書きとされる。このように、一行表示Q1は、その内容の表示向きが表示位置に応じて変化するので、画面の上下左右のいずれの側にも表示されることができる。
図2(a)に示すように、LCD16の表示領域は、左右方向および上下方向にそれぞれ3分割され、それにより、9つの分割領域が形成される。具体的に,9つの分割領域は、左上領域L1、左中領域L2、左下領域L3、中上領域M1、中中領域M2、中下領域M3、右上領域R1、右中領域R2、および右下領域R3である。なお、NVRAM14には、各領域の左上座標および右下座標が記憶されており、これらの座標に基づき各領域を特定できる。各領域を特定する情報としては、左上座標、左右方向の長さ、および上下方向の長さであってもよい。
本実施形態では、図2(a)に示すように、一行表示Q1がLCD16の上側に表示される場合、一行表示Q1は、領域L1,M1,R1に跨り表示される。一方、図2(b)に示すように、一行表示Q1がLCD16の下側に表示される場合、一行表示Q1は、領域L3,M3,R3に跨り表示される。また、図2(c)に示すように、一行表示Q1がLCD16の左側に表示される場合、一行表示Q1は、領域L1〜L3に跨り表示される。図2(d)に示すように、一行表示Q1がLCD16の右側に表示される場合、一行表示Q1は、領域R1〜R3に跨り表示される。
本実施形態では、一行表示Q1の表示中に、一行表示Q1を含む領域内で操作ボタンに対するタップ操作が入力された場合、一行表示Q1の表示位置が、当該タップ操作の入力位置に応じて変更される。具体的に、まず、一行表示Q1が表示される画面が、フリック機能を有する画面ではない場合には、以下に説明するようにタップ操作の入力位置から最も離れた位置となるよう、一行表示Q1の表示位置が変更される。
つまり、図3(a)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、斜線部で示したように左上領域L1である場合、一行表示Q1の表示位置を、LCD16の表示領域を構成する各辺のうち、左上領域L1から最も離れた辺である下辺の側に変更する。なお、図3では、操作ボタンの表示を省略している。
LCD16の表示領域を構成する各辺のうち、下辺だけでなく右辺も、左上領域L1から最も離れた辺に相当するが、二点鎖線に示したような、表示内容が縦書きとなる右側への表示でなく、表示内容が横書きとなる下側への表示を優先させる。本実施形態のLCD16は、表示領域における上下辺の長さより左右辺の長さが長く構成されるので、表示内容が横書きとなる表示を優先することにより、より多くの内容を一行で表示することが可能となる。
本実施形態では、表示領域における上下辺の長さより左右辺の長さが長く構成されるLCD16を採用したが、表示領域における左右辺の長さより上下辺の長さが長く構成されるLCD16が採用される場合には、左上領域L1に対するタップ操作の入力に応じて、一行表示Q1の表示位置をその表示内容が縦書きとなる右側に変更させればよい。
図3(b)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、中上領域M1である場合、一行表示Q1の表示位置を、中上領域M1から最も離れた辺である下辺の側に変更する。図3(c)に示すように、一行表示Q1を含み、かつ、タップ操作が入力された領域が、右上領域R1である場合、一行表示Q1の表示位置を、右上領域R1から最も離れた辺であり、かつ、表示内容は横書きとなる下辺の側に変更する。
図3(d)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左中領域L2である場合、一行表示Q1の表示位置を、左中領域L2から最も離れた辺である右辺の側に変更する。図3(e)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、右中領域R2である場合、一行表示Q1の表示位置を、右中領域R2から最も離れた辺である左辺の側に変更する。
図3(f)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左下領域L3である場合、一行表示Q1の表示位置を、左下領域L3から最も離れた辺であり、かつ、表示内容は横書きとなる上辺の側に変更する。図3(g)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、中下領域M3である場合、一行表示Q1の表示位置を、中下領域M3から最も離れた辺である上辺の側に変更する。図3(h)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、右下領域R3である場合、一行表示Q1の表示位置を、右下領域R3から最も離れた辺であり、かつ、表示内容は横書きとなる上辺の側に変更する。
9つの領域L1〜L3,M1〜M3,R1〜R3のうち、角部に位置する領域L1,L3,R1,R3には、縦書きおよび横書きの一行表示Q1をいずれも表示可能である。そのため、領域L1,L3,R1,R3に縦書きの一行表示Q1が表示されている状態で、一行表示Q1を含む領域L1,L3,R1,R3に対するタップ操作が入力された場合には、一行表示Q1の表示位置が上記規則に従って変更されるとともに、一行表示Q1の表示向きが縦書きから横書きに変更される。
一方、一行表示Q1が表示される画面が、フリック機能を有する画面である場合には、一行表示Q1の表示向きを、フリック操作を入力可能な方向(以下、「フリック方向」と称す)に合わせ、かつ、操作ボタンに対するタップ操作の入力位置からできるだけ遠く離れた位置となるよう、一行表示Q1の表示位置が変更される。
まず、フリック方向が左右方向(矢印A方向)である場合を図4(a)〜(h)に例示する。図4(a)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左上領域L1である場合、一行表示Q1の表示位置を、一行表示Q1の表示向きを左右方向(すなわち、横書き)にでき、かつ、操作ボタンに対するタップ操作の入力位置から最も離れる下辺の側に変更する。なお、図4では、操作ボタンの表示を省略している。
図4(b)および図4(c)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、中上領域M1または右上領域R1である場合もまた、上述した左上領域L1の場合と同様、一行表示Q1の表示位置を、一行表示Q1の表示向きを横書きにでき、かつ、操作ボタンに対するタップ操作の入力位置から最も離れる下辺の側に変更する。
図4(d)および図4(e)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左中領域L2または右中領域R2である場合、一行表示Q1の表示位置を、一行表示Q1の表示向きを横書きにでき、かつ、操作ボタンに対するタップ操作の入力位置からできるだけ離れた上辺の側に変更する。
左中領域L2または右中領域R2に対するタップ操作が入力された場合、LCD16の表示領域を構成する各辺のうち、上辺だけでなく下辺も、一行表示Q1の表示向きを横書きにでき、かつ、操作ボタンに対するタップ操作の入力位置からできるだけ離れる辺に相当するが、本実施形態では上側への表示を優先する。
表示領域の下側は、操作を入力するための指示体(例えば、手)の影になりやすいので、一行表示Q1の表示位置として上側を優先することにより、一行表示Q1が指示体の影になって見難くなることを抑制できる。なお、左中領域L2または右中領域R2に対するタップ操作が入力された場合に、一行表示Q1を下辺の側に変更する構成としてもよい。
図4(f)〜図4(h)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左下領域L3、中下領域M3、または右下領域R3である場合、一行表示Q1の表示位置を、一行表示Q1の表示向きを横書きにでき、かつ、操作ボタンに対するタップ操作の入力位置から最も離れる上辺の側に変更する。
次に、フリック方向が上下方向(矢印B方向)である場合を図5(a)〜(h)に例示する。図5(a)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左上領域L1である場合、一行表示Q1の表示位置を、一行表示Q1の表示向きを上下方向(すなわち、縦書き)にでき、かつ、操作ボタンに対するタップ操作の入力位置から最も離れる右辺の側に変更する。なお、図5では、操作ボタンの表示を省略している。
図5(d)および図5(f)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、左中領域L2または左下領域L3である場合もまた、上述した左上領域L1の場合と同様、一行表示Q1の表示位置を、一行表示Q1の表示向きを縦書きにでき、かつ、操作ボタンに対するタップ操作の入力位置から最も離れる右辺の側に変更する。
図5(c)、図5(e)、および図5(h)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、右上領域R1、右中領域R2、または右下領域R3である場合、一行表示Q1の表示位置を、一行表示Q1の表示向きを縦書きにでき、かつ、操作ボタンに対するタップ操作の入力位置から最も離れる左辺の側に変更する。
図5(b)および図5(g)に示すように、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、中上領域M1または中下領域M3である場合、一行表示Q1の表示位置を、一行表示Q1の表示向きを縦書きにでき、かつ、操作ボタンに対するタップ操作の入力位置からできるだけ離れた左辺の側に変更する。
中上領域M1または中下領域M3に対するタップ操作が入力された場合、LCD16の表示領域を構成する各辺のうち、左辺だけでなく右辺も、一行表示Q1の表示向きを縦書きにでき、かつ、操作ボタンに対するタップ操作の入力位置からできるだけ離れる辺に相当するが、本実施形態では左側への表示を優先する。
一般には右利きのユーザが多いため、そのような右利きのユーザにとって、表示領域の右側は利き手の影になりやすい。よって、一行表示Q1の表示位置として左側を優先することにより、一行表示Q1が手の影になって見難くなる可能性を軽減できる。なお、ユーザの利き手が左右のいずれであるかをNVRAM14に記憶できる構成とし、利き手が左利きとして記憶されている場合には、なお、中上領域M1または中下領域M3に対するタップ操作が入力された場合に、一行表示Q1を右辺の側に変更する構成としてもよい。
よって、本実施形態のMFP10によれば、一行表示Q1の表示中に、当該一行表示Q1が表示された領域内にて操作ボタンに対するタップ操作が入力された場合には、当該タップ操作の入力位置に応じて一行表示Q1の表示位置が都度変更されるので、一行表示Q1がユーザ操作の邪魔になることを抑制できる。特に、画面がフリック機能を有さない場合には、一行表示Q1がタップ操作の入力位置から最も離れた位置に表示されるので、一行表示Q1がユーザ操作の邪魔になることを好適に抑制できる。また、画面がフリック機能を有する場合には、フリック操作を入力する際に、一行表示Qがフリック方向の操作先に存在して、フリック操作の邪魔になることを抑制できる。
図6は、CPU11がROM12に記憶されるプログラムに従い実行する画面制御処理を示すフローチャートである。本処理は、LCD16の表示内容を制御する処理であり、MFP10に電源が投入されたことに応じて開始される。
CPU11は、LCD16に初期画面を表示する(S601)。CPU11は、状態表示Qの表示が必要な状況、すなわち、エラーや通知事項が生じている状況であるかを判断する(S602)。状態表示Qの表示が必要な状況でないと、CPU11が判断した場合(S602:No)、CPU11は、処理をS606に移行する。一方、状態表示Qの表示が必要な状況であると、CPU11が判断した場合(S602:Yes)、CPU11は、LCD16において状態表示Qの表示中であるかを判断する(S603)。
状態表示Qの表示中、すなわち、一行表示Q1または詳細表示Q2の表示中であると、CPU11が判断した場合(S603:Yes)、CPU11は、処理をS606に移行する。一方、状態表示Qの表示中ではないと、CPU11が判断した場合(S603:No)、CPU11は、LCD16に表示中の画面がフリック機能を有する画面であるかを判断する(S604)。表示中の画面がフリック機能を有さない画面であると、CPU11が判断した場合(S604:No)、CPU11は、第1状態表示処理を実行する(S605)。第1状態表示処理は、フリック機能を有さない画面に一行表示Q1を表示する処理であり、その詳細については、図7を参照して後述する。
表示中の画面がフリック機能を有する画面であると、CPU11が判断した場合(S604:Yes)、CPU11は、第2状態表示処理を実行する(S610)。第2状態表示処理は、フリック機能を有する画面に一行表示Q1を表示する処理であり、その詳細については、図8を参照して後述する。
CPU11は、S605またはS610の処理後、詳細表示Q2から一行表示Q1への切り替え操作が入力されたかを判断する(S606)。具体的に、CPU11は、操作キー15の1つであるキャンセルキーに対する操作を検出した場合に、一行表示Q1への切り替え操作が入力されたと判断する。一行表示Q1への切り替え操作が入力されたと、CPU11が判断した場合(S606:Yes)、CPU11は、表示中の詳細表示Q2を消去し(S611)、処理をS604に移行する。これにより、第1状態表示処理(S605)または第2状態表示処理(S610)が実行されるので、キャンセルキーの操作に伴う、詳細表示Q2から、当該詳細表示Q2に対応する一行表示Q1への切り替えが実現する。
一行表示Q1への切り替え操作が入力されていないと、CPU11が判断した場合(S606:No)、CPU11は、一行表示Q1から詳細表示Q2への切り替え操作が入力されたかを判断する(S607)。具体的に、CPU11は、詳細ボタンQ1aに対するタップ操作を検出した場合に、詳細表示Q2への切り替え操作が入力されたと判断する。一行表示Q1への切り替え操作が入力されたと、CPU11が判断した場合(S607:Yes)、CPU11は、詳細表示Q2への切り替えを実行する(S612)。つまり、CPU11は、表示中の一行表示Q1を消去し、当該一行表示Q1に対応する詳細表示Q2を表示する。CPU11は、S612の処理後、処理をS602に移行する。
詳細表示Q2への切り替え操作が入力されていないと、CPU11が判断した場合(S607:No)、CPU11は、画面の遷移を伴う操作が入力されたかを判断する(S608)。「画面の遷移」とは、画面の階層が変わることを意味する。つまり、画面の階層が変わらずに画面の表示内容が変更される場合は、「画面の遷移」に含まれない。例えば、CPU11は、操作されたことにより画面の遷移を伴う操作ボタンに対するタップ操作を検出した場合に、画面の遷移を伴う操作が入力されたと判断する。画面の遷移を伴う操作が入力されたと、CPU11が判断した場合(S608:Yes)、CPU11は、LCD16に表示する画面を入力された操作に応じて遷移させる処理を実行し(S609)、処理をS602に移行する。
画面の遷移を伴う操作が入力されていないと、CPU11が判断した場合(S608:No)、画面内の操作ボタンに対するタップ操作が入力されたかを判断する(S613)。なお、S613の判断の対象となる操作ボタンは、操作されたことにより画面の遷移を伴わないボタンである。画面内の操作ボタンに対するタップ操作が入力されたと、CPU11が判断した場合(S613:Yes)、CPU11は、操作された操作ボタンに応じて画面の表示を更新し(S614)、処理をS615に移行する。表示の更新は、例えば、設置値を増加させるためのボタンが操作された場合に、画面に表示される設定値の増加などである。なお、操作に応じて画面の表示が変化しない場合には、CPU11は、S614の処理をスキップして、処理をS615に移行する。
CPU11は、LCD16において状態表示Qの表示中であるかを判断する(S615)。状態表示Qの表示中ではないと、CPU11が判断した場合(S615:No)、CPU11は、処理をS602に移行する。一方、状態表示Qの表示中であると、CPU11が判断した場合(S615:Yes)、CPU11は、表示中の状態表示Qが、一行表示Q1であるか、詳細表示Q2であるかを判断する(S616)。表示中の状態表示Qが詳細表示Q2であると、CPU11が判断した場合(S616:詳細表示)、CPU11は、処理をS602に移行する。
表示中の状態表示Qが一行表示Q1であると、CPU11が判断した場合(S616:一行表示)、CPU11は、操作ボタンに対するタップ操作が、LCD16の表示領域を9つに分割した各領域L1〜L3,M1〜M3,R1〜R3のうち、一行表示Q1を含む領域内で行われたかを判断する(S617)。
操作ボタンに対するタップ操作が該当領域内で行われていないと、CPU11が判断した場合(S617:No)、すなわち、タップ操作が該当領域外で行なわれた場合、CPU11は、処理をS602に移行する。一方、操作ボタンに対するタップ操作が該当領域内で行われたと、CPU11が判断した場合(S617:Yes)、CPU11は、LCD16に表示中の画面がフリック機能を有する画面であるかを判断する(S618)。
表示中の画面がフリック機能を有さない画面であると、CPU11が判断した場合(S618:No)、CPU11は、タップ操作の入力位置から最も離れた位置となるよう、一行表示Q1の表示位置を変更する(S619)。S619によれば、一行表示Q1の表示位置は、図3を参照して説明した通り、タップ操作の入力位置が領域L1〜L3,M1〜M3,R1〜R3のいずれであるかに応じて変更される。
一方、表示中の画面がフリック機能を有する画面であると、CPU11が判断した場合(S618:Yes)、CPU11は、一行表示Q1の表示向きをフリック方向に合わせ、かつ、操作ボタンに対するタップ操作の入力位置からできるだけ遠く離れた位置となるよう、一行表示Q1の表示位置を変更する(S620)。S620によれば、一行表示Q1の表示位置は、図4および図5を参照して説明した通り、タップ操作の入力位置が領域L1〜L3,M1〜M3,R1〜R3のいずれであるかに応じて変更される。CPU11は、S620またはS619の処理後、処理をS602に移行する。
S616〜S620の処理によれば、一行表示Q1の表示位置は、タップ操作の位置に応じて変更されるが、詳細表示Q2の表示位置は、タップ操作がされたとしても変更されない。詳細表示Q2の表示領域は、詳細な内容が表示されるが故に、そのサイズが比較的大きいため、詳細表示Q2の表示位置が変更されると、却って操作の邪魔になる虞がある。これに対し、詳細表示Q2の表示位置は、タップ操作がされたとしても変更されないので、詳細表示Q2が操作の邪魔になることを抑制できる。
画面内の操作ボタンに対するタップ操作が入力されていないと、CPU11が判断した場合(S613:No)、CPU11は、その他の処理を実行し(S621)、処理をS606に移行する。S621の処理としては、例えば、リストを表示する画面において、リスト内容をスクロールさせるためのフリック操作が入力された場合に、当該フリック操作に応じてリストをスクロールする処理や、状態表示Qを消去する状況が生じた場合に、状態表示Qを消去する処理などが例示される。なお、その他の処理として実行すべき処理が存在しない場合、CPU11は、S621の処理をスキップして、処理をS602に移行する。
図7は、上述した第1状態表示処理(S605)を示すフローチャートである。CPU11は、表示対象となる画面の上側に操作ボタンが配置されているかを判断する(S701)。なお、「表示対象となる画面」とは、表示中の画面、または、画面が遷移する場合の遷移先の画面である、例えば、LCD16の表示領域の上側に形成された各領域L1,M1,R1内に全てまたは一部が含まれる操作ボタンが配置されている場合、CPU11は、画面の上側に操作ボタンが配置されていると判断する。操作ボタンは、例えば、MFP10が実行可能な各種機能を選択するためのコピーボタンやFAXボタンなどのボタンや、機能を利用する際の各種設定を選択するための設定項目のボタンなどである。なお、表示対象となる画面における操作ボタンの配置は、NVRAM14に記憶される画面情報に基づいて特定される。画面の画像処理によりボタンの位置を特定してもよい。
画面の上側に操作ボタンが配置されていないと、CPU11が判断した場合(S701:No)、タップ操作が入力されない空きスペースが画面の上側に存在すると推定されるので、かかる場合、CPU11は、一行表示Q1を画面の上側に表示し(S702)、本処理を終了する。画面の上側に表示された一行表示Q1は、図2(a)に示すように、その表示向きが横書きとなる。
画面の上側に操作ボタンが配置されていると、CPU11が判断した場合(S701:Yes)、CPU11は、表示対象の画面の下側に操作ボタンが配置されているかを判断する(S703)。例えば、LCD16の表示領域の下側に形成された各領域L3,M3,R3内に全てまたは一部が含まれる操作ボタンが配置されている場合、CPU11は、画面の下側に操作ボタンが配置されていると判断する。
画面の下側に操作ボタンが配置されていないと、CPU11が判断した場合(S703:No)、タップ操作が入力されない空きスペースが画面の下側に存在すると推定されるので、かかる場合、CPU11は、一行表示Q1を画面の下側に表示し(S704)、本処理を終了する。画面の下側に表示された一行表示Q1は、図2(b)に示すように、その表示向きが横書きとなる。
画面の下側に操作ボタンが配置されていると、CPU11が判断した場合(S703:Yes)、CPU11は、表示対象の画面の左側に操作ボタンが配置されているかを判断する(S705)。例えば、LCD16の表示領域の左側に形成された各領域L1〜L3内に全てまたは一部が含まれる操作ボタンが配置されている場合、CPU11は、画面の左側に操作ボタンが配置されていると判断する。
画面の左側に操作ボタンが配置されていないと、CPU11が判断した場合(S705:No)、タップ操作が入力されない空きスペースが画面の左側に存在すると推定されるので、かかる場合、CPU11は、一行表示Q1を画面の左側に表示し(S706)、本処理を終了する。画面の左側に表示された一行表示Q1は、図2(c)に示すように、その表示向きが縦書きとなる。
画面の左側に操作ボタンが配置されていると、CPU11が判断した場合(S705:Yes)、CPU11は、表示対象の画面の右側に操作ボタンが配置されているかを判断する(S707)。例えば、LCD16の表示領域の右側に形成された各領域R1〜R3内に全てまたは一部が含まれる操作ボタンが配置されている場合、CPU11は、画面の右側に操作ボタンが配置されていると判断する。
画面の右側に操作ボタンが配置されていないと、CPU11が判断した場合(S707:No)、タップ操作が入力されない空きスペースが画面の右側に存在すると推定されるので、かかる場合、CPU11は、一行表示Q1を画面の右側に表示し(S708)、本処理を終了する。画面の右側に表示された一行表示Q1は、図2(d)に示すように、その表示向きが縦書きとなる。
画面の右側に操作ボタンが配置されていると、CPU11が判断した場合(S705:Yes)、CPU11は、一行表示Q1を画面の上側に表示し(S709)、本処理を終了する。つまり、画面の上下左右に操作ボタンが配置されている場合、一行表示Q1は、上側に配置された操作ボタンの上に表示されることもある。なお、S709にて表示する一行表示Q1は、その背景を半透明または透明としてもよい。背景を半透明にすることにより、一行表示Q1の下となった操作ボタンを半透明の背景を介してユーザに視認させることができる。
上記第1状態表示処理(S605)によれば、S701〜S704の処理が、S705〜S708の処理に優先して実行される。つまり、画面の上または下側に横書きの一行表示Q1が、縦書きの一行表示Q1より優先して表示される。つまり、より多くの内容を一行で表示し易い表示向きとなる一行表示Q1が優先して表示される。
画面の上側と下側とでは、画面の上側への表示が優先される。よって、一行表示Q1が指示体の影になって見難くなることが抑制される。一方、画面の左側と右側とでは、画面の左側への表示が優先される。一般には右利きのユーザが多いので、一行表示Q1の表示位置として左側を優先することにより、一行表示Q1が手の影になって見難くなる可能性を軽減できる。
図8は、上述した第2状態表示処理(S610)を示すフローチャートである。CPU11は、フリック方向を判断する(S801)。フリック方向が左右方向であると、CPU11が判断した場合(S801:左右)、CPU11は、表示対象の画面の上または下側にフリック操作に無関係の空きスペースがあるかを判断する(S802)。例えば、画面の上または下側に、フリック操作を行う領域(以下、「フリック領域」と称す)がなく、かつ、操作ボタンが配置されていない場合に、CPU11は、画面の上または下側にフリック操作に無関係の空きスペースがあると判断する。なお、フリック領域および操作ボタンが存在するスペースであっても、そのスペースに一行表示Q1を表示した場合に、一行表示Q1との重なりが比較的少ないスペースであれば、そのスペースを空きスペースであると判断してもよい。
画面の上または下側にフリック操作に無関係の空きスペースがあると、CPU11が判断した場合(S802:Yes)、CPU11は、その空きスペースに一行表示Q1を表示し(S803)、本処理を終了する。画面の上または下側にフリック操作に無関係の空きスペースがないと、CPU11が判断した場合(S802:No)、CPU11は、画面の上側にフリック領域があるかを判断する(S804)。
画面の上側にフリック領域がないと,CPU11が判断した場合(S804:No)、CPU11は、一行表示Q1を画面の上側に表示し(S805)、本処理を終了する。一方、画面の上側にフリック領域があると、CPU11が判断した場合(S804:Yes)、CPU11は、画面の下側にフリック領域があるかを判断する(S806)。画面の下側にフリック領域がないと,CPU11が判断した場合(S806:No)、CPU11は、一行表示Q1を画面の下側に表示し(S807)、本処理を終了する。
一方、画面の下側にフリック領域があると、CPU11が判断した場合(S806:Yes)、CPU11は、一行表示Q1を画面の上側に表示し(S808)、本処理を終了する。つまり、画面の上および下側にフリック領域が存在する場合には、一行表示Q1を画面の上側に表示することにより、ユーザが下側のフリック領域にてフリック操作を行った場合であっても、そのフリック操作を行う指示体(例えば、手)の影となって一行表示Q1が見難くなることを抑制できる。S808にて表示する一行表示Q1は、その背景を半透明または透明としてもよい。
フリック操作を入力可能な方向が上下方向であると、CPU11が判断した場合(S801:上下)、CPU11は、表示対象の画面の左または右側にフリック操作に無関係の空きスペースがあるかを判断する(S809)。例えば、画面の左または右側に、フリック領域がなく、かつ、操作ボタンが配置されていない場合に、CPU11は、画面の左または右側にフリック操作に無関係の空きスペースがあると判断する。
画面の左または右側にフリック操作に無関係の空きスペースがあると、CPU11が判断した場合(S809:Yes)、CPU11は、その空きスペースに一行表示Q1を表示し(S810)、本処理を終了する。画面の左または右側にフリック操作に無関係の空きスペースがないと、CPU11が判断した場合(S809:No)、CPU11は、画面の左側にフリック領域があるかを判断する(S811)。
画面の左側にフリック領域がないと,CPU11が判断した場合(S811:No)、CPU11は、一行表示Q1を画面の左側に表示し(S812)、本処理を終了する。一方、画面の左側にフリック領域があると、CPU11が判断した場合(S811:Yes)、CPU11は、画面の右側にフリック領域があるかを判断する(S813)。画面の右側にフリック領域がないと,CPU11が判断した場合(S813:No)、CPU11は、一行表示Q1を画面の右側に表示し(S814)、本処理を終了する。
一方、画面の右側にフリック領域があると、CPU11が判断した場合(S813:Yes)、CPU11は、一行表示Q1を画面の左側に表示し(S815)、本処理を終了する。つまり、画面の左または右側にフリック領域が存在する場合には、一行表示Q1を画面の左側に表示することにより、右利きのユーザが右側のフリック領域にてフリック操作を行った場合であっても、そのフリック操作を行う指示体(例えば、利き手である右手)の影となって一行表示Q1が見難くなることを抑制できる。なお、S815にて表示する一行表示Q1は、その背景を半透明または透明としてもよい。
上記第2状態表示処理(S610)によれば、フリック機能を有する画面において、一行表示Qが、フリック方向に合わせた表示向き(横書きまたは縦書き)で表示されるので、フリック操作を入力する際に、一行表示Qがフリック方向の操作先に存在して、フリック操作の邪魔になることを抑制できる。
以上説明した通り、本実施形態のMFP10によれば、一行表示Q1の表示中に、操作ボタンに対するタップ操作が入力された場合には、一行表示Q1の表示位置が、当該タップ操作の入力位置から最も離れた位置に変更されるので、一行表示Q1がユーザ操作の邪魔になる可能性を抑制できる。
また、一行表示Q1の表示中に、操作ボタンに対するタップ操作が入力された場合に、当該タップ操作によって画面が切り替わる場合には、切り替わり後の画面においてタッチ操作が入力され難いと推定される位置に一行表示Q1が表示されるので、かかる場合もまた、一行表示Q1がユーザ操作の邪魔になる可能性を抑制できる。
また、状態表示Qの表示が必要な状況が生じた場合に、表示中の画面における操作ボタンやフリック領域の配置に応じて、タッチ操作が入力され難いと推定される位置に一行表示Q1が表示されるので、かかる場合もまた、一行表示Q1がユーザ操作の邪魔になる可能性を抑制できる。
上記実施形態において、MFP10が、表示装置の一例である。図6から図8に示すフローチャートを実現させるプログラムが、表示プログラムの一例である。CPU11が、制御部の一例である。LCD16が、表示部の一例である。タッチパネル17が、タッチパネルの一例である。タップ操作が、第1操作の一例である。フリック操作が、第2操作の一例である。一行表示Q1が、特定表示、第1表示の一例である。詳細表示Q2が、特定表示、第2表示の一例である。
S606,S607,S608,S613の処理を実行するCPU11が、検出手段の一例である。S605,S610,S612の処理を実行するCPU11が、特定表示手段の一例である。S619,S620,S605,S610の処理を実行するCPU11が、位置変更手段の一例である。S701,S703,S705,S707,S802,S804,S806,S809,S811,S813の処理を実行するCPU11が、推定手段の一例である。S604の処理を実行するCPU11が、画面判断手段の一例である。S617の処理を実行するCPU11が、位置判断手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、本発明の表示装置として、LCD16およびタッチパネル17を有するMFP10を例示したが、タッチパネルが重ねられているLCDを有する各種の装置であっても本発明の表示装置となり得る。例えば、プリンタまたはスキャナなどの単機能装置や、スマートフォンなどの端末装置や、タブレット端末や、パーソナルコンピュータや、音楽再生装置や、デジタルカメラなどの装置を、本発明の表示装置として適用できる。
上記実施形態では、LCD16の表示領域を、3×3の9領域、すなわち、領域L1〜L3,M1〜M3,R1〜R3に分割する構成としたが、分割数は9つに限られない。例えば、2×2の4領域や、4×4の16領域などであってもよい。また、上下方向または左右方向の分割数が等しくなくてもよい。例えば、短辺である上下方向を2分割する一方で、長辺である左右方向を3分割する構成、すなわち、2×3の6領域に分割する構成であってもよい。また、上下方向のみ、または、左右方向のみが分割される構成であってもよい。
上記実施形態では、一行表示Q1が中中領域M2に表示されない構成であるので、中中領域M2内でタップ操作が入力された場合に、一行表示Q1の表示位置が変更することはない。一行表示Q1が中中領域M2に表示される構成の場合には、中中領域M2を考慮する必要がある。
例えば、フリック機能を有さない画面において、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域が、中中領域M2である場合には、上、下、左、および右側のいずれかのうち、上側に一行表示Q1を表示するようにすればよい。一方、フリック機能を有する画面では、フリック方向に応じて、フリック方向に合わせた表示向きとなるよう、一行表示Q1を表示するようにすればよい。例えば、フリック方向が左右方向である場合には、上側に一行表示Q1を表示し、フリック方向が上下方向である場合には、左側に一行表示Q1を表示すればよい。
上記実施形態では、図3(a)、図3(c)、図3(f)、および図3(h)に示すように、角部に位置する領域L1,L3,R1,R3に対するタップ操作が入力された場合には、領域L1,L3,R1,R3に表示される一行表示Q1が、縦書きであるか横書きであるかにかかわらず、一行表示Q1が横書きとなる位置に一行表示Q1を移動させる構成とした。これに代えて、領域L1,L3,R1,R3にて表示される一行表示が縦書きの場合には、一行表示Q1が縦書きとなる位置、例えば、左側に一行表示Q1を表示させる構成としてもよい。
上記実施形態では、画面における表示言語が日本語である場合について例示した。表示言語としては、英語などの各種言語を採用できる。言語によっては、日本語や中国語などのように、横および縦書きの両方が可能な言語と、英語やフランス語やロシア語などのように、縦書きが不適切な言語とが存在する。よって、表示言語が、英語など、縦書きが不適切な言語である場合には、一行表示Q1の表示向きが縦書きとならないよう、表示向きを制限する構成としてもよい。これにより、表示言語が不適切な向きで表示されることを抑制できる。
例えば、表示言語が日本語である上記実施形態では、例えば、図3(d)に示すように、左中領域L2内で入力されたタップ操作に対し、一行表示Q1の表示位置を右辺の側に変更する構成としたが、表示言語が例えば英語である場合には、図9に示すように、一行表示Q1が横書きとなるように上辺の側に表示位置を変更する。なお、一行表示を下辺に表示する場合も表示内容を横書きとできるので、図9の二点鎖線に示したように、下辺の側に表示位置を変更してもよい。
また、表示言語が例えば英語であり、かつ、フリック方向が上下方向である場合には、一行表示Q1の表示向きがフリック方向に直交することになるが、上または下辺のうち、操作ボタンに対するタップ操作の入力位置からできるだけ離れる辺の側に、横書きの一行表示Q1を表示させるようにすればよい。
MFP10が各種言語の中から1の言語を表示言語として設定できる場合には、設定された言語が、横および縦書きの両方が可能な言語である場合には、一行表示Q1の表示向きを制限しない一方で、縦書きが不向きな言語である場合には、一行表示Q1の表示向きを横書きに制限するようにすればよい。なお、本変形例では、CPU11は、表示言語とする言語が選択されたことに応じて、表示言語が何語であるかを判断する。そして、CPU11は、NVRAM14に記憶されている言語情報(すなわち、現在の表示言語の言語情報)を、選択された言語の言語情報に書き換えることにより、表示言語の設定を完了する。
上記実施形態では、長辺が3領域に跨るサイズの一行表示Q1を例示したが、長辺の長さは3領域に跨る程の長さでなくてもよい。例えば、長辺の長さが領域1つ分や2つ分程度である一行表示Q1であっても、本発明を適用できる。また、上記実施形態では、短辺が1領域に満たないサイズの一行表示Q1を例示したが、短辺の長さが1領域を超える一行表示Q1であっても、本発明を適用できる。
上記実施形態では、一行表示Q1を含み、かつ、操作ボタンに対するタップ操作が入力された領域に応じて、一行表示Q1の表示位置を変更する構成とした。これに代えて、操作ボタンに対する操作でなくても、一行表示Q1を含む領域においてタップ操作が入力された場合に、その領域に応じて一行表示Q1の表示位置を変更する構成としてもよい。
上記実施形態では、一行表示Q1を含む領域内で操作ボタンに対するタップ操作が行われた場合に、当該タップ操作が行われた領域に応じて一行表示Q1の表示位置を変更する構成としたが、タップ操作された位置と一行表示Q1との距離が所定距離以下である場合に、タップ操作された位置に応じて一行表示Q1の表示位置を変更する構成としてもよい。かかる場合、一行表示Q1の表示位置の変更の契機となるタップ操作は、操作ボタンに対する操作であっても、操作ボタンが配置されない領域で行われた操作であってもよい。
上記実施形態では、領域L1〜L3,M1〜M3,R1〜R3のうち、上下または左右方向に隣接する3つの領域の一部に一行表示Q1が表示され、操作ボタンに対するタップ操作が一行表示Q1を含む領域内で行われた場合に、当該タップ操作が行われた領域に応じて一行表示Q1の表示位置を変更する構成とした。これに代えて、一行表示Q1を前記隣接する3つの領域の全体に表示するようにし、一行表示Q1に対するタップ操作が行われた場合に、当該タップ操作が行われた領域に応じて一行表示Q1の表示位置を変更する構成としてもよい。
上記実施形態では、S613において、操作ボタンに対するタップ操作、すなわち、画面にタッチさせた指示体を移動させずに離上させる操作がCPU11により検出されたことを契機として、一行表示Q1の表示位置を変更する構成とした。これに代えて、操作ボタンに対するタッチ、すなわち、押下操作のみが検出されたことを契機として、一行表示Q1の表示位置を変更する構成としてもよい。つまり、押下操作が検出された場合に、離上操作が検出される前に、一行表示Q1の表示位置を変更してもよい。
また、一行表示Q1の表示位置を変更する契機としては、操作ボタンに対するタップ操作に限らず、画面への何らかの操作が検出されたことを契機として一行表示Q1の表示位置を変更する構成としてもよい。かかる場合の操作としては、押下操作の一態様であるタップ操作であっても、移動操作の一態様であるフリック操作であってもよい。よって、フリック機能を有する画面について、タップ操作に限らず、画面内に対するフリック操作がCPU11により検出されたことを契機として、一行表示Q1の表示位置を変更する構成としてもよい。また、画面に対するタッチ(すなわち、押下操作のみ)が検出された場合を契機として一行表示Q1の表示位置を変更してもよい。
上記実施形態では、タップ操作が入力されても、詳細表示Q2の表示位置を変更させない構成としたが、タップ操作の入力に応じて、詳細表示Q2の表示位置を変更させる構成としてもよい。上記実施形態では、フリック機能を有する画面について、タップ操作の入力に応じた一行表示Q1の表示位置の変更を説明したが、ドラッグ操作など各種の移動操作を入力可能な画面についても、フリック機能を有する画面の場合と同様に、一行表示Q1の表示位置を変更させてもよい。
第1状態表示処理(図7)のS705〜S708の処理によれば、画面の左側と右側とでは、左側の方が一行表示Q1の表示位置として優先されるが、ユーザの利き手に応じて、画面の左側または右側のいずれを一行表示Q1の表示位置として優先するかを異ならせるようにしてもよい。つまり、ユーザの利き手が左右のいずれであるかをNVRAM14に記憶できる構成とし、利き手が左利きとして記憶されている場合、右側への表示を優先するために、S707の判断をS705の判断に先立って行う。
第2状態表示処理(図8)についても同様に、ユーザの利き手に応じて、S811およびS813の判断順序を変えてもよい。これにより、ユーザの利き手が左右のいずれであっても、一行表示Q1が利き手の影になって見難くなる可能性を軽減できる。また、S815において一行表示Q1が表示される位置も、ユーザの利き手が左手である場合には、右側に一行表示Q1を表示する構成としてもよい。
なお、利き手の判断の仕方としては、自身の利き手が右手であるか左手であるかをユーザが入力することにより判断する構成としてもよいし、フリック操作やドラッグ操作などの移動操作による操作軌跡の傾向に応じてCPU11が判断する構成としてもよい。かかる場合、判断基準となる移動操作による操作軌跡としては、移動操作により描かれる弧の形状や、移動操作の傾きなどが例示される。
CPU11は、移動操作により描かれる弧の形状を、例えば、移動操作の始点および終点と、移動操作中の1点との少なくとも3点に対する、タッチパネル17により検知された各点に対する操作の入力位置に基づいて判断する。なお、移動操作の始点および終点は、移動操作を開始するための押下操作の入力位置と、移動操作を終了するための離上操作の入力位置である。CPU11は、判断された弧の形状が左右のいずれに上がり気味であるかに基づき、利き手を推定する。例えば、弧の形状が右側に上がり気味である場合、CPU11は、利き手を右手であると推定する。弧の形状が左側に上がり気味である場合、CPU11は、利き手を左手であると推定する。
一方、CPU11は、移動操作の傾きを、例えば、移動操作の始点および終点に基づいて判断する。CPU11は、判断された傾きに基づいて利き手を推定する。例えば、傾きが右上がりである場合、CPU11は、利き手を右手であると推定する。傾きが左上がりである場合、CPU11は、利き手を左手であると推定する。
利き手の推定は、最近に行われた1回の移動操作に対し推定された利き手であってもよいし、最近に行われた複数回(例えば、最大で10回程度)の移動操作に対し各々推定された利き手を蓄積し、より多く推定された側の手を利き手と判断してもよい。各ユーザをログイン情報により判断できる場合には、各ユーザが入力した移動操作に対する推定結果に基づき各ユーザの利き手を判断し、ログインしたユーザに応じて、当該ユーザの利き手を判断する構成としてもよい。
なお、ユーザの利き手を考慮する場合には、一行表示Q1の表示位置を、少なくとも、ユーザの利き手と同じ側にしないことが好ましい。一行表示Q1の表示位置を、ユーザの利き手と同じ側でなく、かつ、画面の下側にしないことがより好ましい。
上記実施形態では、1の一行表示Q1が表示される構成としたが、一行表示Q1の表示中に、表示中の一行表示Q1とは別の条件で状態表示Qを表示する必要が生じた場合には、表示中の一行表示Q1に加えて、別の一行表示Q1を表示する構成としてもよい。かかる場合、ユーザの利き手を考慮し、当該利き手の影になり難い位置に表示することが好ましい。
上記実施形態では、CPU11が、図6から図8に記載される各処理を実行する構成として説明したが、これら各図に記載される各処理を、複数のCPUが協同的に実行する構成としてもよい。また、ASICなどのICが、単独で、または、複数によって協働的に、上記各図に記載される各処理を実行する構成してもよい。また、CPU11とASICなどのICとが協同して、上記各図に記載される各処理を実行する構成してもよい。
また、図6から図8に記載される各処理のうち、一部の処理を、特許請求の範囲における独立請求項から逸脱しない範囲で、省略または変更してもよい。上記実施形態により説明した各特徴や、上述した各変形例を適宜組み合わせて実施する構成としてもよい。