JP2017027366A - 情報処理装置及びイベント管理方法 - Google Patents

情報処理装置及びイベント管理方法 Download PDF

Info

Publication number
JP2017027366A
JP2017027366A JP2015145250A JP2015145250A JP2017027366A JP 2017027366 A JP2017027366 A JP 2017027366A JP 2015145250 A JP2015145250 A JP 2015145250A JP 2015145250 A JP2015145250 A JP 2015145250A JP 2017027366 A JP2017027366 A JP 2017027366A
Authority
JP
Japan
Prior art keywords
event
unit
window
graphic controller
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015145250A
Other languages
English (en)
Inventor
史朗 九里
Shiro Kuri
史朗 九里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015145250A priority Critical patent/JP2017027366A/ja
Priority to US15/200,848 priority patent/US10319061B2/en
Publication of JP2017027366A publication Critical patent/JP2017027366A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Abstract

【課題】異なるイベントで動作するグラフィックコントローラを利用したアプリを1つの情報処理装置で動作させると、ユーザが操作部で操作を行っても一方のグラフィックコントローラを利用したアプリは動作しない。【解決手段】操作部106に表示しているアプリのウインドウに応じて、グラフィックコントローラ306/308に送信するイベントを変更する。またイベントの変更には、ダミーイベントの生成と送信、および、イベント座標の変換を含む。これにより、グラフィックコントローラは、入力されたイベントに応じた処理要求をアプリに出すことができる。【選択図】図3

Description

本発明は、情報処理装置の操作部を操作したときに発生するイベントを制御する技術に関する。
タッチパネルを備える情報処理装置では、ユーザがタッチパネルに表示されたオブジェクト(以下、対象または操作対象とも呼ぶ)タッチしたときに、タッチパネルのデバイスドライバによって発生するタッチイベントを、情報処理処置内部のソフトウエア(グラフィックコントローラ)で処理してタッチされた操作対象を選択するのが一般的である。一方、マウスを用いて選択する場合、操作対象にマウスを移動したときにマウスのデバイスドライバによって発生するエンターイベントと、マウスでクリックしたときにマウスのデバイスドライバによって発生するタッチイベントの両方のイベントを、グラフィックコントローラで処理して操作対象を選択するのが一般的である。そのため、タッチパネルを用いる場合はタッチイベントのみで動作するグラフィックコントローラを利用し、マウスを用いる場合はエンターイベントとタッチイベントで動作するグラフィックコントローラを利用するのが一般的である。なお近年では、ユーザの操作性を向上するために、タッチパネルドライバで検知したイベントの種別に応じて、検知したイベントを補正して処理を変更する技術も知られている(特許文献1参照)。
グラフィックコントローラをバージョンアップによる更新や別のものに変更することで、必要なイベントが変わることがある。例えば、タッチパネルで用いられるグラフィックコントローラが、マウスで用いられるグラフィックコントローラに変更されることがある。この場合、オブジェクトの選択のために、変更前はタッチイベントのみを必要としたが、変更後はエンターイベントとタッチイベントの両方が必要となる。なおグラフィックコントローラは、ライセンスなどの問題で修正するのが難しいケースが多いうえ、もし修正できたとしてもそれを利用するアプリの修正やリコンパイルが発生することが多い。そのため、グラフィックコントローラが必要とするイベントのみを変えることは難しいのが一般的である。
特開2014-197315号公報
タッチパネルを備える情報処理装置において、複数のアプリケーション(以下、アプリという)が動作しており、アプリの実装言語毎に異なる複数のグラフィックコントローラが存在している。このとき、ある1つのアプリのためのグラフィックコントローラを更新もしくは別のものに変更することで、或る操作に対応するためにグラフィックコントローラが必要とするイベントが変わることがある。たとえば前述したように、あるアプリのためのタッチパネル用のグラフィックコントローラとしてマウス用のグラフィックコントローラを用いたり、あるいは新たなグラフィクスコントローラを用いたりすると、選択操作のために必要とするイベントはタッチイベントからエンターイベント+タッチイベントへと変わることがある。この場合、ひとつの操作に対応するために必要となるイベントが互いに異なる複数のグラフィックコントローラがひとつの情報処理装置で動作することになる。そのため、タッチパネルドライバが発生するイベントは変わらないために、そのドライバが発生するイベントに対応したグラフィックコントローラ、たとえば変更されていない方のグラフィックコントローラしか動作できない。その結果、たとえばユーザが操作部でボタン選択などの操作を行っても、動作していたはずのアプリが動作しなくなり、動作するアプリと動作しないアプリとが生じ得る。
本発明は上記従来例に鑑みて成されたもので、グラフィックコントローラが動作するイベントが変更されても、操作と操作に対応するアプリケーションの動作とがその変更によって変わることのない情報処理装置およびイベント管理方法を提供することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。すなわち、
入力デバイスの操作に応じて発生したイベントを、該イベントの送信先である、受信したイベントに応じた処理要求をアプリケーションに対して入力するグラフィックコントローラ部の種類と前記イベントの種類とに応じて変更する変更手段と、
前記変更手段により変更されたイベントを前記グラフィックコントローラ部に送信する送信手段とを有する。
本発明により、グラフィックコントローラが動作するイベントが変更されても、操作と操作に対応するアプリケーションの動作とがその変更によって変わることがない。また、異なるイベントで動作するグラフィックコントローラをもつ情報処理装置において、既存のアプリを作り直すことなく、ユーザがタッチパネルの操作を行うことが可能となる。これにより、アプリの互換性(グラフィックコントローラが変わってもアプリは変更なしで動作可能であるという互換性)を維持することができる。
本発明の各実施形態に共通する画像形成装置100のコントローラユニット120を表すブロック図である。 本発明の各実施形態に共通する画像形成装置100の操作部106および周辺の構成を示すブロック図である。 本発明の各実施形態に共通するソフトウエアのモジュール構成を表す図である。 画像形成装置100のHDD104に記憶された描画コントローラ管理テーブルを表すイメージ図である。 画像形成装置100の操作部106に表示される一画面例である。 画像形成装置100の操作部106に表示される一画面例である。 本発明の各実施形態に共通するユーザ操作に応じたイベント制御の処理を表すフローチャート図である。 本発明の第2の実施形態におけるユーザ操作に応じたイベント制御の処理を表すフローチャート図である。 画像形成装置100の操作部106に表示される一画面例である。 画像形成装置100の操作部106に表示される一画面例である。
以下、本発明を実施するための形態について、図面を用いて説明する。
[第1の実施形態]
最初に、情報処理装置の一実施例である画像形成装置のコントローラユニットの説明を行う。
<画像形成装置のコントローラユニットの構成>
図1は、本発明の各実施形態に係る画像形成装置100のコントローラユニットの内部構造を示すブロック図である。コントローラユニット120は、各種制御プログラムを実行するCPU101を有する。CPU101は、ROM103に格納されているブートプログラムに基づきシステムを起動し、このシステム上でHDD(ハードディスク装置)104に格納されている制御プログラムを読み出してRAM102をワークエリアとして所定の処理を実行する。この制御プログラムにより、Java(登録商標)プログラムなどの所定の制御を実行することが可能である。HDD104には、上記各種制御プログラムが格納されるとともに、画像データや後述するネットワーク部107が有するすべての通信手段に関する情報を格納する。CPU101には、RAM102、ROM103、HDD104がシステムバス111を介して接続されている。さらに操作部I/F105、ネットワーク部107、イメージバスI/F109、電源管理部110がシステムバス111を介して接続されている。
操作部I/F105は、操作部(ディスプレイ)106との間のインターフェイス部であり、操作部106に表示する画像データをRAM102から取得して転送する処理や、操作部106で発生した信号をCPU101へ転送する処理などを行う。操作部106は、ユーザが操作可能なボタンなどの操作対象を表示するための表示処理と、表示処理に表示された情報をユーザが操作した信号(入力信号)を検知する入力処理を行う。操作部106には、後述するように座標入力デバイスであるタッチパネルと表示デバイスであるLCDとが含まれる。
電源管理部110は、画像形成装置100の電源OFFと電源ONの管理を行う。なお電源ONを検知した場合、上述のように、CPU101は、ROM103のブートプログラムに基づきシステムを起動し、このシステム上でHDD104に格納されている制御プログラムを実行する。
ネットワーク部107は、LAN108に接続され、LAN108を介した情報の入出力を行う。LAN回線にwebサーバや外部装置400が接続されている場合は、そのサーバからLAN108を介して情報を取得することが可能である。また、LAN回線内のプロキシサーバなどを介して、インターネットに接続し、インターネット上のwebサーバからwebコンテンツを取得することも可能である。
イメージバスI/F109は、システムバス111と画像バス112とを接続し、データ構造を変換するバスブリッジである。画像バス112は、画像データを高速で転送可能なPCIバスまたはIEEE1394規定に従うバスから構成される。画像バス112には、RIP(ラスタイメージプロセッサ)113、デバイスI/F114および画像処理部119が接続されている。RIP113は、PDLコードをビットマップイメージに展開する。デバイスI/F114は、画像入出力デバイスであるスキャナ116やプリンタ118とコントローラユニット120とを接続し、画像データの同期系/非同期系の変換を行う。ここでは、デバイスI/F114とスキャナ116とがケーブル115を介して、デバイスI/F114とプリンタ118とがケーブル117を介してそれぞれ接続されている。画像処理部119は、多値画像データに対してJPEGなど、二値画像データに対して、JBIG、MMR、MHなどの圧縮伸張処理を行う。また、入力画像データや出力画面に対して、プリンタの補正や解像度変換などの補正、加工、編集を行う。
このように、コントローラユニット120のCPU101は、各制御プログラムに基づき、システムバス110に接続される各種デバイスとのアクセスを総括的に制御するととともに、デバイスI/F114を介してスキャナ116から画像情報を読み込む。また、読み込んだ画像情報に対して所定の処理を施した後に該画像情報をデバイスI/F114を介してプリンタ118に出力するなどの制御を行う。さらに、ネットワーク部107を通じて取得した文字データや画像データの解析・変換処理を行い、HDD104へ保存あるいは操作部106での表示制御を行う。
<CPU101による操作部106の制御>
図2は、図1の操作部106および周辺の構成を示すブロック図である。操作部106のタッチパネル203および各ハードキーのキー群202は、操作部I/F105の入力ポート201を介してCPU101に接続される。また、このタッチパネル203の押下位置を示す位置情報、およびキー群202の押下に対応するキー情報は、入力ポート201を介してCPU101に入力される。
操作部106のLED205およびLCD206は、操作部I/F105の出力ポート204を介してCPU101に接続され、LED205の点灯およびLCD206の表示はCPU101により制御される。このタッチパネル203には微量な電気が流れており、ユーザがタッチすることで発生する電気量の変化からタッチ位置を検出する静電方式の装置であり、LCD206の上に重なるように配置される。ユーザがLCD206上に表示された仮想的なボタン(以下、ボタン)などの操作対象を直接触れることで、タッチパネル203がその位置情報(座標)を検知する。CPU101は、位置情報を検知すると、現在LCD206上に表示している操作対象とその座標を元に、ユーザが選択した操作対象が何であるかを検知する。そしてCPU101は、ROM103もしくはHDD104にあらかじめ記憶されている命令の中から、検知した操作対象が選択されときに実行すべき命令を検出し、この命令を実行する。これにより、LCD206に表示する画面データが作成される。この画面データは、CPU101が出力ポート204を経由してLCD206に送信することで、操作部106の表示を変更できる。なお、このようなLCD206でのユーザ操作時の内部処理は、これ以降の全ての説明で共通であり、以降では記載を省略する。なお、タッチパネルは上述した静電方式とは限らず、抵抗膜方式や表面弾性波方式などの他の方式であってもよい。
<ソフトウエア構成>
次に、画像形成装置100のCPU101やHDD104などの各ハードウエア上で動作するソフトウエアのモジュール構成を、モジュール構成を示す図3を用いて説明する。なお、これらの各モジュールにおける処理は、CPU101の命令により、ROM103やHDD104に格納されているプログラムを読み出し、RAM102をワークエリアとして所定の処理を実行することで実現している。また、所定の処理を実行することで生成される全ての情報は、RAM102もしくはHDD104に格納する。このような各モジュールにおける処理は、特に明記しない限り同様であるため、以降ではこのようなハードウエアの記載は省略する。また、モジュール構成図3の各モジュールの詳細な処理は、後述のフローチャート図7でも説明を行う。
ドライバ部301は、タッチパネルドライバであり、ユーザが操作部106(正確には操作部106のLCD206)でタッチなどの操作を行ったときに発生するタッチイベントやリリースイベントなどの操作イベントを検知するモジュールである。操作イベントは、イベントの種類と、イベントの座標とを含む。このドライバ部301は、検知した操作イベントをイベント管理部302へ送信する。
イベント管理部302は、ドライバ部301から送信されるイベント(或いはイベント情報とも呼ぶ)を受信し、操作部106に表示しているアプリに応じて受信したイベントの変更や新規作成を行い、これらのイベントを後述のウインドウ管理部305に送信するモジュールである。イベント管理部302は、表示を行っているアプリケーションプログラム(以下、アプリと略称する)の特定を行う場合は後述のウインドウ管理部305を用い、イベントの変更や作成を行う場合は後述の送信情報変更部303や後述の送信イベント生成部304を用いる。
送信情報変更部303は、イベント管理部302からの送信情報変更求を受信し、送信情報の変更を行い、変更した情報をイベント管理部302に送信するモジュールである。
送信先イベント生成部304は、イベント管理部302からの送信イベント生成要求を受信し、受信した情報を元にしてダミーイベントを生成し、生成したダミーイベントをイベント管理部302に送信するモジュールである。
ウインドウ管理部305は、イベント管理部305からのイベントや変更した情報を受信し、操作部106に表示を行っているアプリに対応したグラフィックコントローラ部に、イベント送信を行うモジュールである。また、ウインドウ管理部305は、操作部106に表示するウインドウの管理も行っており、操作部106にどのアプリのどのウインドウを表示しているかの特定や、任意のウインドウを操作部106に表示することが可能である。
Cグラフィックコントローラ部306は、後述のCアプリ部307のC言語で実装されたアプリが利用するボタンやリスト、ウインドウなどの描画コントローラからなるモジュールである。なお、これらのCグラフィックコントローラ部306の描画コントローラは、全てウインドウ上に配置されており、1つのウインドウには複数の描画コントローラを配置することが可能である。そのため、ウインドウを切り替えることで、操作部106の画面を切り替えることとする。なお、描画コントローラの配置座標や描画コントローラに対応する実行処理などの情報は、アプリのプログラムに含まれていることとする。また、Cグラフィックコントローラ部306は、ウインドウ管理部305からイベントを受信すると、操作部106に表示しているウインドウのアプリに対して実行処理要求を送信するモジュールでもある。また上記記述では描画コントローラはコントローラであると共に表示されるオブジェクトをも指す用語として用いているが、表示される対象をウイジェットあるいはコントロールと呼んでコントローラと区別する場合もある。
Cアプリ部307は、C言語で実装されたアプリ(以降ではCアプリと呼ぶ)の集まりである。このCアプリ部307のアプリは、Cグラフィックコントローラ部306からの実行処理要求を受信すると、この実行処理要求に応じた処理を実行する。例えば、アプリの処理Aを実行したい場合、処理Aを実行するためのボタンAをあるウインドウ上に配置し、操作部106にこのウインドウを表示する。そしてユーザがこのボタンAを押下すると、Cグラフィックコントローラ部306はボタンAの選択を検知し、このボタンAに関連付けられた処理Aの実行要求イベントをアプリに送信する。アプリは受信したイベントに応じた処理を実行する。
Javaグラフィックコントローラ部308は、後述のJavaアプリ部309のJava言語で実装されたアプリが利用するボタンやリストなどの描画コントローラからなるモジュールである。このJavaグラフィックコントローラ部308は、前述のCグラフィックコントローラ部306と同じく、ウインドウ管理部305からイベントを受信すると、操作部106に表示しているウインドウのアプリに対して実行処理要求を送信する。
Javaアプリ部309は、Java言語で実装されたアプリ(以降ではJavaアプリと呼ぶ)の集まりである。このJavaアプリ部309のアプリは、Javaグラフィックコントローラ部308からのイベントを受信すると、このイベントに応じた処理を実行する。ここで、Cグラフィックコントローラ部306とJavaグラフィックコントローラ部308について、詳細な処理の説明を行う。
<Cグラフィックコントローラ部の説明>
最初にCグラフィックコントローラ部306について説明する。Cアプリ部307のアプリが利用する描画コントローラの情報は、あらかじめHDD104にアプリ毎にテーブル形式で記憶されており、ここではあるアプリ(アプリXとする)が利用する描画コントローラの情報が、図4であるとする。なお以降では、図4のような表で表した描画コントローラの情報を描画コントローラ管理テーブルと呼ぶことにする。図4の説明を行う。コントローラ種別は、描画コントローラの種類を表す情報であり、ウインドウやボタン、リストなどがある。IDは、各コントローラを一意に識別するための番号等の識別情報である。領域は、各コントローラの配置位置であり、ここでは左上の座標と右下の座標とにより特定している。親IDは、各コントローラを配置するベースとなるウインドウのIDである。対応動作は、各コントローラが選択されたときに行う動作である。なお以下の説明ではコントローラ種別にIDを付してコントローラを特定する。
図4(a)は、アプリXにはIDが1000のウインドウ(以下ウインドウ1000と呼ぶ。他のコントローラも同様)と、ウインドウ2000があることを表している。また図4(a)は、ウインドウ1000上にはボタン1001とボタン1002が配置されており、ウインドウ2000上にはリスト2001が配置されていることを表している。本例では、ウインドウ1000を操作部106に表示すると図5の画面となり、この画面でユーザが、ボタン1001を選択すると、ウインドウ2000の画面を表示する。
ここで、ボタンを選択するための内部処理について説明する。ここでの説明は、ウインドウ等のコントローラを処理の主体となり得るオブジェクトとして記述する。しかしウインドウやウイジェットに対応するオブジェクトによる処理は、たとえばグラフィックコントローラ部306/308やウインドウ管理部305により実行されるものとしてもよい。いずれにしてもハードウエア構成上はCPU101によって実行される。Cグラフィックコントローラ部306のボタンを選択するには、このボタンを表示しているウインドウに対して、ボタンの領域内の座標のタッチイベントとリリースイベントの両方を順番に送信する必要がある。タッチイベントとは、操作部106を指でタッチしたことを表すイベントで、リリースイベントは指を離したことを表すイベントである。また以降では、イベントの種別と座標を含むイベントを、操作イベントと呼ぶ。図5のボタン1001を選択する場合、Cグラフィックコントローラ部306は、ウインドウ1000に対する、イベント種別がタッチとリリースの操作イベントを受信する必要がある。また、ここで受信するイベントは、共にボタン1001の領域内すなわち座標が(200,200)〜(300,300)の領域内の座標である必要もある。Cグラフィックコントローラ部306は、これら2つの操作イベントを受信すると、ボタン1001が選択されたと認識する。そしてCグラフィックコントローラ部306は、ボタン1001の対応動作として、ウインドウ2000の表示要求をCアプリ部307のアプリ(アプリX)に送信する。
<Javaグラフィックコントローラ部の説明>
続いて、Javaグラフィックコントローラ部308の説明を行う。Javaグラフィックコントローラ部308は、Javaアプリ部309のアプリが利用可能な描画コントローラの集まりであり、描画コントローラとしてはボタンやウインドウがある。ただし、Javaグラフィックコントローラ部308は、ウインドウをベースとするコントローラであり、1つのウインドウ上に1つしか描画コントローラを配置することができない。そのため、図5と同じ画面を操作部106に表示する場合、描画管理テーブルは図4(b)となる。図4(b)は、ウインドウ5000上にウインドウ5100と、ウインドウ5200とが配置されている。そして、ウインドウ5100上にボタン5101が配置され、ウインドウ5200上にボタン5201が配置されている。なお以降では、親IDを持たないウインドウをベースウインドウと呼び、親IDを持つウインドウを子ウインドウと呼ぶ。なお以降では特に明記しない限り、単なるウインドウはベースウインドウのことを表すとする。
Javaグラフィックコントローラ部308は、ボタンを選択するために必要なイベントもウインドウベースのものである。Javaグラフィックコントローラ部308のボタンは、その選択操作に応じて、ボタンを表示しているウインドウに対して、エンターイベント、タッチイベント、リリースイベント、リーブイベントの4つのイベントを続けて送信する必要がある。エンターイベントは、指示されている位置がウインドウの領域内に入ったことを表すイベントで、リーブイベントはウインドウの領域内から出たことを表すイベントである。そのため、ボタン5101を選択する場合、Javaグラフィックコントローラ部308は、ウインドウ管理部305から子ウインドウ5100に対する4つの操作イベントを順番どおり受信する必要である。この4つの操作イベントとは、イベント種別がエンター、プレス、リリース、リーブのイベントである。また、これらのイベントの座標は、送信されたウインドウ(ベースウインドウではなく、子ウインドウ)内の座標系で示される必要がある。たとえば図4(b)のボタン5101の場合は、操作部106の表示画面の座標系では左上と右下の角点がそれぞれ(200,200)、(300,300)の座標で表されるが、イベントの座標は、子ウインドウの座標系で表される必要があり、例えばボタン5101は、その左上角を原点とする(0,0)〜(100,100)の座標で表されている必要がある。
以上が、本実施例のCグラフィックコントローラ部306とJavaグラフィックコントローラ部308の説明である。このように、Cグラフィックコントローラ部306とJavaグラフィックコントローラ部308は、例えば同じ選択操作について、異なるイベントを受信する必要がある。
<イベント検知からイベント送信までの手順>
続いて、ドライバ部301でイベントを検知してからCグラフィックコントローラ部306もしくはJavaグラフィックコントローラ部308にイベントを送信するまでの処理を、フローチャート図7を用いて説明する。なお、フローチャート図7の処理の説明後に、具体例の説明を行う。ここで、ドライバ部301は、Cグラフィックコントローラ部306に対応したイベントを発生する。すなわち、ドライバ部301の発生したイベントをそのままCアプリ部307のウインドウに対して入力すれば、Cアプリ部307はイベントに応じた処理を実行できる。
ユーザが操作部106で操作を行うと、ドライバ部301は、操作イベントを検知する(ステップ701)。この操作イベントには、イベントの種別とイベントが発生した座標を含む。なお、操作イベントの検出方法は、採用したタッチパネルの方式、例えば一般的な抵抗膜方式(感圧方式)もしくは静電方式の操作パネルの検出方法と同じであるため、詳細は省略する。ドライバ部301は、検知した操作イベントをイベント管理部302へ送信する。
この操作イベントを受信したイベント管理部302は、操作部106に表示しているウインドウがCアプリのウインドウかどうかの判定要求をウインドウ管理部305に送信する。これを受信したウインドウ管理部305は、操作部106に表示しているウインドウに関する情報(ウインドウ情報)を元に、Cアプリのウインドウを表示しているかを判定する(ステップ702)。そしてウインドウ管理部305は、この判定結果をイベント管理部302に送信する。
イベント管理部302は、ウインドウ管理部305から受信した判定結果からCアプリのウインドウを表示していると判断すると、ドライバ部301から受信した操作イベントをウインドウ管理部305に送信する(ステップ703)。これを受信したウインドウ管理部305は、操作部106に表示されているアプリのウインドウを特定し、このウインドウを含むグラフィックコントールを特定する。ここでは操作部106にはCアプリのウインドウを表示しているため、ウインドウ管理部305はCグラフィックコントローラ部306に対して送信先情報(ウインドウID)と、ドライバ部301から受信した操作イベントを送信する。これが操作部106にCアプリのウインドウを表示しているときの処理である。
一方、イベント管理部302は、操作部106に表示しているウインドウがCアプリのウインドウではないと判断すると(ステップ702がNOと判断すると)、送信先変更と座標変更を行う(ステップ704)。この詳細を説明する。
まず、イベント管理部302は、送信情報変更要求とドライバ部301から受信した操作イベントを、送信情報変更部303に送信する。これを受信した送信情報変更部303は、受信した操作イベントの座標から、この座標を領域内に含む子ウインドウを検索し、検索した子ウインドウのIDを送信先情報とする。さらに送信情報変更部303は、受信した操作イベントの座標を、子ウインドウ内の座標に変更する。たとえば、図4に示した描画管理テーブルを参照して、子ウインドウの座標が操作部106の座標系で示されているところを、子ウインドウの原点を(0,0)とする子ウインドウの座標系に変換する。例えば図4(b)の子ウインドウ5100のイベント座標は、X,Yそれぞれから200を減じた座標に変換される。なお以降では、このようにして受信した操作イベントの座標を変更したイベントを、新操作イベントと呼ぶ。送信情報変更部303は座標変更後に、送信先情報(子ウインドウのID)と新操作イベントをイベント管理部302に送信する。以上が送信先変更と座標変更の詳細の説明である。
送信情報変更部303から送信先情報と新操作イベントを受信したイベント管理部302は、送信イベント生成要求と新操作イベントを送信イベント生成部304に送信する。これを受信した送信イベント生成部304は、受信した新操作イベントのイベント種別が、タッチイベントであるかリリースイベントであるかの判定を行う(ステップ705)。
まず、この判定結果がタッチイベントの場合(ステップ705がYESの場合)の説明を行う。送信イベント生成部304は、受信した新操作イベントのイベント種別に応じたダミーイベントを生成する。具体的には、イベント種別がタッチの場合はイベント種別がエンターのダミーイベントを生成するする(ステップ706)。なお、ダミーイベントの座標はイベントタイプにかかわらず(エンターイベントの場合もリーブイベントの場合も)(0,0)とする。そして送信イベント生成部304は、生成したダミーイベントをイベント管理部302に送信する。これを受信したイベント管理部302は、送信情報変更部303から受信した送信先情報と、受信したダミーイベントをウインドウ管理部305に送信する(ステップ707)。そしてさらにイベント管理部302は、送信情報変更部303から受信した送信先情報と新操作イベントとをウインドウ管理部305に送信する(ステップ708)。これらのイベントを受信したウインドウ管理部305は、送信先情報を含むグラフィックコントローラ部に、受信したイベントを送信する。この結果、Javaグラフィックコントローラ部308は、ドライバ部301によりタッチイベントが発生した場合に、ダミーとして追加されたエンターイベントとタッチイベントとをウインドウズ管理部305から受信し、タッチイベントのイベント座標は、そのイベントの対象ウインドウの座標系で示されることとなる。以上が操作イベントのイベント種別がタッチイベントの場合の説明である。
次に、送信イベント生成部304での判定結果がリリースイベントの場合(ステップ705がNOである場合)の説明を行う。送信先イベント生成部304は、受信した操作イベントの種別がリリースイベントであると判定すると、ダミーのリーブイベントを生成する(ステップ709)。そして送信イベント生成部304は、生成したダミーイベントをイベント管理部302に送信する。これを受信したイベント管理部302は、送信情報変更部303から受信した送信先情報と新操作イベントをウインドウ管理部305に送信する(ステップ710)。そしてさらにイベント管理部302は、送信情報変更部303から受信した送信先情報と送信イベント生成部304から受信したダミーイベントをウインドウ管理部305に送信する(ステップ711)。これらのイベントを受信したウインドウ管理部305は、送信先情報を含むグラフィックコントローラ部に、受信したイベントを送信する。この結果、Javaグラフィックコントローラ部308は、ドライバ部301によりリリースイベントが発生した場合に、リリースイベントと、ダミーとして追加されたリーブイベントとをウインドウズ管理部305から受信し、タッチイベントのイベント座標は、そのイベントの対象ウインドウの座標系で示されることとなる。以上が操作イベントのイベント種別がリリースイベントの場合の説明である。これでフローチャート図7の説明は終了する。
<具体例>
最後に、このフローチャート図7の処理を、具体例を用いて説明する。図6は、本発明の各実施形態に共通する画像形成装置100の操作部106の一表示例であり、画像形成装置100の電源を入れることで(電源をONにすることで)、最初に表示される画面である。なお以降では、画像形成装置100の電源をONしてから操作部106に最初に表示される画面を、初期画面と呼ぶこととする。この初期画面は、画像形成装置100で実行可能なアプリを表示するメニュー画面であり、メインメニューアプリが表示している。
図6には、各アプリにアクセスするためのボタン601〜604が表示されている。コピーボタン601はコピーアプリにアクセスするためのボタンであり、センドボタン602はセンドアプリにアクセスするためのボタンである。また同様に、ボックスボタン603はボックスアプリにアクセスするためのボタンであり、ブラウザボタン604はブラウザアプリにアクセスするためのボタンである。コピーアプリ、センドアプリ、ボックスアプリはJavaアプリであり、メインメニューアプリとブラウザアプリはCアプリであることとする。
このような初期画面において、まずブラウザボタン604をタッチした場合の具体例を説明する。それから、Cアプリであるブラウザアプリの画面でボタンを選択した場合の具体例と、Javaアプリであるとコピーアプリの画面でボタンを選択した場合の具体例を説明する。
<初期画面でブラウザボタン604を選択した場合>
初期画面において、ユーザがブラウザボタン604上の座標(100,300)をタッチ(押下)したとする。なお本実施例の操作部106の押下可能な座標の範囲は(0,0)と(800,480)とを対角とする範囲であり、すなわち、X座標が0〜800、Y座標が0〜480の範囲とする。
ドライバ部301は、イベント種別がタッチ、座標が(100,300)の操作イベントを検知する(ステップ701)。ドライバ部301は、この検知した操作イベントをイベント管理部302に送信する。このイベントを受信したイベント管理部302は、ウインドウ管理部305に操作部106に表示されているウインドウがCアプリのウインドウかどうかの判定要求を送信する。
これを受信したウインドウ管理部305は、操作部106に表示されているウインドウがCアプリのウインドウであるかの判定を行う(ステップ702)。ここではCアプリであるメインメニューアプリのウインドウが表示されているため、ウインドウ管理部305は、Cアプリのウインドウであるという判定結果をイベント管理部302に送信する。
この判定結果を受信したイベント管理部302は、ドライバ部301から受信した操作イベントをウインドウ管理部305に送信する(ステップ703)。これを受信したウインドウ管理部305は、操作部106に表示しているウインドウを送信先情報とし、Cグラフィックコントローラ部306に送信先情報と受信したイベントを送信する。その後にユーザが座標(100,300)の位置から指をリリースしたとする。
ドライバ部301は、イベント種別がリリース、座標が(100,300)の操作イベントを検知する(ステップ701)。この後のCグラフィックコントローラ部306に操作イベントを送信するまでの処理は前述のタッチイベントの処理と同じである。ドライバ部301は、受信した操作イベントをイベント管理部302に送信する。
そしてイベント管理部302は、ウインドウ管理部305を用いて操作部106に表示されているウインドウがCアプリのウインドウであるかの判定を行う(ステップ702)。そしてイベント管理部302は、ドライバ部301から受信したイベントをウインドウ管理部305に送信する(ステップ703)。
これを受信したウインドウ管理部305は、Cグラフィックコントローラ部306に受信したイベントを送信する。Cグラフィックコントローラ部306は、前述のタッチイベントと今回受信したリリースイベントとから、ブラウザボタン604が選択されたと判断する。ここではブラウザボタン604にはブラウザアプリの起動処理が対応動作として記憶されていることとする。そのため、Cグラフィックコントローラ部306は、Cアプリ部307の1つであるブラウザアプリに起動処理要求を送信する。これを受信したブラウザアプリは、操作部106に図9のブラウザアプリの画面を表示する。以上が、初期画面でブラウザボタン604の選択した場合の具体例の説明である。ここで、図9の画面の説明を行う。
<ブラウザ画面での操作>
図9のwebブラウザ画面は、タイトル表示領域901、webコンテンツ表示領域902、設定項目表示領域903から構成されている。タイトル表示領域901は、webコンテンツ表示領域902に表示するwebコンテンツを表すタイトル文字列を表示する領域である。ここでは「検索入力画面」という文字列を表示指定している。webコンテンツ表示領域902は、指定されたURLアドレスに対応するwebコンテンツをwebページとして表したものを表示する領域である。設定項目表示領域903は、webブラウザに関する設定項目を表示する領域であり、ここには設定項目を表すボタン904〜912を表示する。これらのボタンの説明を行う。ボタン904はWebコンテンツの表示の戻るボタンであり、ボタン905はWebコンテンツの表示の進むボタンである。ボタン906はWebコンテンツの読み込み中止ボタンであり、ボタン907はWebコンテンツの再読み込みボタンである。ボタン908はホームボタンであり、あらかじめ決められたホームアドレスのWebコンテンツ表示するためのボタンである。ボタン909は印刷ボタンであり、このボタンを押下するとwebコンテンツ表示領域902に現在表示しているWebコンテンツを印刷するための印刷指示画面を表示するためのボタンである。ボタン910はお気に入りボタンであり、ユーザが所望するURLアドレスを選択するためのボタンである。ボタン911はメニューボタンであり、WEBブラウザに関する様々な設定(表示や印刷や動作に関する設定)を行うためのボタンである。ボタン912はURLアドレス表示ボタンであり、ここでは「http://127.0.0.1/send/ID.html」というURLアドレスを表示している。以上が、図9の画面の説明である。
<ブラウザ画面でボタンをタッチした場合>
この図9の画面で、座標(400,400)の位置をユーザが指でタッチしたとする。ドライバ部301は、イベント種別がタッチ、座標が(400,400)の操作イベントを検知する(ステップ701)。ドライバ部301は、この検知した情報をイベント管理部302に送信する。イベント管理部302は、ウインドウ管理部305を用いて操作部106に表示しているアプリのウインドウがCアプリのウインドウかどうかの判定を行うが、ここでは操作部にCアプリであるブラウザアプリが表示されている。そのため、この後の処理は、前述の初期画面で座標(100,300)をタッチしたときの処理と同じである。すなわち、イベント管理部302からウインドウ管理部305に操作イベントを送信し、ウインドウ管理部305からCグラフィックコントローラ部306にイベントを送信する。また、その後にユーザが座標(400,400)の位置から指を離したときの処理も前述の初期画面で座標(100,300)をタッチしたときの処理と同じである。ここではドライバ部301は検知したイベント種別がリリース、座標が(400,400)の操作イベントを検知する。その後、ドライバ部301はこの操作イベントをイベント管理部302に送信し、イベント管理部302からウインドウ管理部305に操作イベントを送信し、ウインドウ管理部305からCグラフィックコントローラ部306にイベントを送信する。
Cグラフィックコントローラ部306は、前述のタッチイベントと今回受信したリリースイベントから、プリントボタン909が選択されたと判断する。ここではプリントボタン909にはプリント設定画面のためのウインドウを表示する処理が対応動作として記憶されていることとする。そのため、Cグラフィックコントローラ部306は、ブラウザアプリにプリント設定画面のためのウインドウの表示要求を送信する。これを受信したブラウザアプリは、操作部106にプリント設定画面(不図示)を表示する。以上が、ブラウザアプリ画面でプリントボタン909を選択した場合の具体例の説明である。
<初期画面でコピーボタン601を選択した場合>
続いて、Javaアプリであるコピーアプリの画面でボタンをタッチしたときの処理の説明を行う。図6の初期画面において、コピーボタン601を指でタッチし、リリースする。これにより操作部106に図10のコピーアプリの画面を表示する。この処理の詳細は、前述のブラウザボタン604をタッチ、リリースしたときの処理と、表示される画面がコピーアプリ画面である点を除いて同様であるため、説明は省略する。ここで、図10の画面の説明を行う。
<コピー設定画面の構成>
図10のコピーアプリ画面は、タイトル表示領域1001、設定確認領域1002、設定項目表示領域1003から構成されている。タイトル表示領域1001には「コピー設定画面」を表示し、設定確認領域1002には現在の設定内容を表示している。この設定確認領域1002には、コピーが実行可能であることを意味する「コピーできます。」と、倍率の「100%」と、用紙サイズの「A4」と、両面設定の「両面」と、置数の「1部」を表示している。また、設定項目表示領域1003には、倍率を設定するための倍率ボタン1004、用紙を設定するための用紙ボタン1005、両面設定を行うための両面ボタン1006を表示している。これらのボタン1004〜1106をユーザが押下すると、各設定を行うための画面を表示する。
<コピーアプリ画面での操作>
この図10の画面で、座標(400,400)の位置をユーザがタッチしたとする。ドライバ部301は、イベント種別がタッチ、座標が(400,400)の操作イベントを検知する(ステップ701)。ドライバ部301は、この検知した情報をイベント管理部302に送信する。
このイベントを受信したイベント管理部302は、ウインドウ管理部305に操作部106に表示されているウインドウがCアプリのウインドウかどうかの判定要求を送信する。これを受信したウインドウ管理部305は、操作部106に表示されているウインドウがCアプリのウインドウであるかの判定を行う(ステップ702)。ここでは、Javaアプリであるコピーアプリのウインドウが表示されているため、ウインドウ管理部305はCアプリのウインドウが表示されていないと判定し、この結果をイベント管理部302に送信する。これを受信したイベント管理部302は、送信情報変更部303に送信情報変更要求と受信した操作イベントを送信する(ステップ704)。
これを受信した送信情報変更部303は、送信先変更と座標変更を行う(ステップ704)。この詳細を説明する。ここでは、コピーアプリが図6の画面を表示するために使用する描画コントローラ管理テーブルは図4(c)であるとする。図4(c)は、倍率ボタン1004をIDが11000のウインドウで表し、用紙ボタン1005をIDが12000のウインドウで表し、両面ボタン1006をIDが13000のウインドウで表している。この描画コントローラ管理テーブルは、前述の図4(b)と同じ形式であるため、詳細な説明は省略する。
送信情報変更部303は、イベント管理部302からの情報を受信すると、受信した操作イベントの座標が(400,400)であるため、この座標を含む子ウインドウを描画コントローラ管理テーブルから検索する。ここでは座標(400,400)は、IDが13000の子ウインドウ(すなわち両面ボタン)に該当するため、この子ウインドウを送信先に設定する(送信先をIDが13000のウインドウに設定する)。なおイベント座標を含む子ウインドウが見つからない場合は、ベースウインドウ(IDが10000のウインドウ)を送信先に設定することとする。さらに送信情報変更部303は、受信したイベントの座標をこの子ウインドウ内の座標に変換する。ここでは、受信したイベントの座標が(400,400)であり、子ウインドウの左上の座標(すなわち原点)が(350,380)であるため、子ウインドウ内の座標は、イベント座標から原点座標を差し引いた座標(50,20)となる。そして送信情報変更部303は、子ウインドウ内の座標からなる新操作イベント(イベント種別がタッチで、座標(50,20))と送信先情報(IDが13000のウインドウ)をイベント管理部302に送信する。
このイベントを受信したイベント管理部302は、送信イベント生成部304に送信イベント生成要求と新操作イベントを送信する。
これを受信した送信イベント生成部304は、受信した新操作イベントのイベント種別が、タッチであるかの判定を行う(ステップ705)。ここではイベント種別はタッチであるため、送信イベント生成部304はダミーのエンターイベントを生成し(ステップ706)、このダミーイベントをイベント管理部302に送信する。このステップ706で生成するダミーイベントは、イベント種別はエンター、座標(0,0)のイベントである。
これを受信したイベント管理部302は、ウインドウ管理部305に送信情報変更部303から受信した送信先情報とダミーイベントを送信する(ステップ707)。ここで送信する情報は、その送信先が、IDが13000のウインドウであり、イベント種別がエンターで座標(0,0)の情報である。そしてさらにイベント管理部302は、送信情報変更部303から受信した新操作イベントと送信先情報をウインドウ管理部305に送信する(ステップ708)。ここで送信する情報は、その送信先が、IDが13000のウインドウであり、イベント種別がタッチで座標(50,20)の情報である。これらのイベントを受信したウインドウ管理部305は、受信したイベントをJavaグラフィックコントローラ部308に送信する。以上が操作イベントのイベント種別がタッチイベントである場合の説明である。
次に、操作イベントのイベント種別がリリースイベントである場合の説明を行う。図10の画面で、座標(400,400)の位置をユーザが指をリリースしたとする。ドライバ部301は、イベント種別がリリース、座標が(400,400)の操作イベントを検知する(ステップ701)。ドライバ部301は、この検知した情報をイベント管理部302に送信する。
このイベントを受信したイベント管理部302は、前述のタッチイベントと同様に、操作部106に表示しているウインドウの判定を行い(ステップ702)、送信情報変更部303を用いて送信情報の変更を行う(ステップ704)。その後、イベント管理部302は、送信イベント生成部304に送信イベント生成要求と新操作イベントを送信する。これを受信した送信イベント生成部304は、受信した新操作イベントのイベント種別が、タッチイベントであるかの判定を行う(ステップ705)。
ここではイベント種別はリリースであるため、送信イベント生成部304はダミーのリーブイベントを生成し(ステップ709)、生成したイベントをイベント管理部302に送信する。このステップ70で生成するダミーイベントは、イベント種別はリーブ、座標(0,0)のイベントである。これを受信したイベント管理部302は、送信情報変更部303から受信した新操作イベントと送信先情報をウインドウ管理部305に送信する(ステップ710)。ここで送信する情報は、送信先がIDが13000のウインドウであり、イベント種別がリリースで座標(50,20)の情報である。そしてさらにイベント管理部302は、ダミーイベントと送信先情報をウインドウ管理部305に送信する(ステップ711)。ここで送信する情報は、送信先がIDが13000のウインドウであり、イベント種別がリーブで座標(0,0)の情報である。以上が操作イベントのイベント種別がリリースイベントである場合の説明である。
Javaグラフィックコントローラ部308は、前述のエンターイベントとタッチイベント、そして今回受信したリリースイベントとリーブイベントから、両面ボタン1006が選択されたと判断する。ここでは両面ボタン1006には両面設定画面のためのウインドウを表示する処理が対応動作として記憶されていることとする。そのため、Javaグラフィックコントローラ部308は、コピーアプリに両面設定画面のためのウインドウの表示要求を送信する。これを受信したコピーアプリは、操作部106に両面設定画面(不図示)を表示する。以上が、コピーアプリ画面で両面ボタン1006を選択した場合の具体例の説明である。以上が、コピー画面でユーザが操作を行った場合の具体例である。
上記のように、操作部106に表示されているアプリのウインドウに応じて送信するイベント数やイベントの情報を変更することができる。これにより、異なるイベントで動作するグラフィックコントローラ部306、308を備える画像形成装置100においても、既存アプリの変更なしにアプリを動作させることが可能となる。
<派生形1> * ダミーイベントの座標
上記実施形態では、フローチャート図7のステップ706とステップ709で生成するダミーイベントの座標は、ダミーであることを明示的にするため(0,0)にした。しかし、座標はタッチもしくはリリースの操作イベントに含まれる座標と同じでもよい。これにより、受信した座標をそのまま使うこともできる。
<派生形2> * アプリの処理は、タッチでもリリースでも良い
上記実施形態では、グラフィックコントローラ部はタッチとリリースの両方のイベントで描画コントローラが選択されたと判断したが、タッチイベントのみで選択されたと判断しても良い。これにより、より操作部106の表示切り替えを早いタイミングで行うことができ、ユーザの操作性が向上することがある。
<派生形3> *イベントの送信先の判定
上記実施形態では、フローチャート図7のステップ702で操作部106にCアプリのウインドウが表示されているかどうかで判断したが、Cアプリが表示を行っているかどうかで判断しても良い。すなわちイベントの送信先の判定はウインドウではなく、表示しているアプリに基づいても良い。これにより、1つのアプリが1つのウインドウしか利用しない場合は、処理を高速に行うことが可能となる。
[第2の実施形態]
第1の実施形態では、イベント検知部301で検知したイベントはタッチイベントとリリースイベントのみであった。しかし、操作部106にタッチした指を、リリースせずに動かすことで発生するムーブイベントをイベント検知部301で検知することもある。本実施形態では、ムーブイベントが発生した場合を、フローチャート図8を用いて説明する。Javaアプリ部309及びJavaグラフィックコントローラ部308は、たとえばムーブイベントが入力されると、スライド操作が行われたものとして、表示されたウインドウとの位置関係に応じてスライド操作に対応する処理を実行する。その際、Javaグラフィックコントローラ部308は、ムーブイベントのみでスライド操作が行われたものと判定することができるものとする。なお、基本的な処理や制御は第1の実施形態と同じであるため、第1の実施形態と異なる点のみを説明する。
ユーザがタッチ操作を行った後に、操作部106でムーブ操作を行ったこととする。このとき、ドライバ部301は、イベント種別がムーブであるイベントを検知する(ステップ701)。操作部106にCアプリのウインドウが表示されている場合は、第1の実施形態と同じく、イベント管理部302はドライバ部301から受信したイベントをそのままウインドウ管理部305に送信する。一方、操作部106にJavaアプリのウインドウが表示されている場合は、ステップ704の送信先と座標変換処理は第1の実施形態と同じ処理であるが、イベント種別の判定処理(フローチャート図7のステップ705)が第1の実施形態とは異なる。ここで、イベント種別がムーブの場合の処理の説明を行う。
イベント管理部302からの送信イベント生成要求を受信した送信イベント生成部304は、受信した操作イベントのイベント種別を判定する(ステップ801)。ここでイベント種別がタッチもしくはリリースの場合は、第1の実施形態と同じ処理を行う。しかし、イベント種別がムーブの場合は、送信イベント生成部304はダミーイベントの生成を行わず、送信イベントを生成しない情報をイベント管理部302に送信する。
これを受信したイベント管理部302は、送信情報変更部303から受信した送信先情報に、送信情報変更部303から受信した新操作イベントを送信する(ステップ802)。つまり、送信先は子ウインドウであり、イベント種別はムーブで、座標は子ウインドウ内の座標に変換した座標である操作イベントを送信する。このため、第1の実施形態のようにムーブ操作の場合は、ダミーイベントの生成を行わない。以上が、イベント種別がムーブの場合の処理の説明である。
上記のようにグラフィックコントローラに対するダミーイベントが不要なイベントについてはダミーイベントの送信を行わない。このためグラフィックコントローラは、その種類にかかわらず、発生したイベントについて適切な動作を行うことができる。また、ウインドウ管理部305への不要なイベントの送信が減り、システム全体で処理する情報量を抑えることができる。
上記例ではムーブイベントについてはダミーイベントを生成せず、送信もしない例を説明したが、グラフィックコントローラがダミーイベントを必要としないイベントについては、イベント管理部302は、発生したイベントをそのままウインドウ管理部303を介してグラフィックコントローラに送信すればよい。
また実施形態1,2では、たとえば選択操作のために用いられるタッチイベントおよびリリースイベントを例として説明した。しかし、これら以外のイベントであっても、グラフィックコントローラ部がダミーイベントを必要とするイベントについては、実施形態1,2と同様に、ダミーイベントの生成と適切な順序に従う付加とを行う。さらに、ダミーイベントが必要となるイベントについて、当該イベントとダミーイベントとをウインドウを表示するアプリケーションごとに関連づけた表などを管理し、表に従ってダミーイベントを生成・付加することで、より柔軟な対応が可能となる。
また上記例ではダミーイベントを付加する例を説明したが、逆にドライバ部301により発生したイベントをイベント管理部で削除するように構成してもよい。たとえばドライバ部301がタッチを検出した場合には、まずエンターイベントを発生し、続けてタッチイベントを発生するように構成されていてもよい。この場合には、Javaアプリのウインドウに対してイベントはそのまま送信され、Cアプリのウインドウに対しては、タッチイベントに先行するエンターイベントがイベント管理部302により削除された上で、タッチイベントのみが送信される。リリースイベントとリーブイベントについても同様である。
さらに、上記実施形態では、操作部106は透明なタッチパネル203を表示部であるLCD206に重ねた構成としていたが、タッチパネル203を表示部から分離した構成についても、本実施形態に係る発明を適用することが可能である。
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
301:ドライバ部、302:イベント管理部、303:送信情報変更部、304:送信イベント生成部、305:ウインドウ管理部、307:Cアプリ部、309:Javaアプリ部

Claims (11)

  1. 入力デバイスの操作に応じて発生したイベントを、該イベントの送信先である、受信したイベントに応じた処理要求をアプリケーションに対して入力するグラフィックコントローラ部の種類と前記イベントの種類とに応じて変更する変更手段と、
    前記変更手段により変更されたイベントを前記グラフィックコントローラ部に送信する送信手段と
    を有することを特徴とする情報処理装置。
  2. 前記変更手段は、前記操作に応じて発生したイベントに、前記イベントの送信先である前記グラフィックコントローラ部の種類と前記イベントの種類とに応じたダミーイベントを追加することを特徴とする請求項1に記載の情報処理装置。
  3. 前記変更手段は、前記イベントの送信先である前記グラフィックコントローラ部が、前記操作に応じて発生したイベントに加えて必要とするイベントを前記ダミーイベントとして追加することを特徴とする請求項2に記載の情報処理装置。
  4. 前記変更手段は、前記操作に応じて発生したイベントがタッチイベント又はリリースイベントであり、かつ、前記イベントの送信先である前記グラフィックコントローラ部が、前記タッチイベントについてはエンターイベントを、前記リリースイベントについてはリーブイベントをそれぞれ必要とする種類である場合には、前記操作に応じて発生したイベントがタッチイベントであればエンターイベントを前記ダミーイベントとして追加し、前記操作に応じて発生したイベントがリリースイベントであればリーブイベントを前記ダミーイベントとして追加することを特徴とする請求項2又は3に記載の情報処理装置。
  5. 前記変更手段は、前記操作に応じて発生したイベントの座標を、前記イベントの送信先である前記グラフィックコントローラ部の種類に応じて変換することを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
  6. 前記変更手段は、前記イベントが発生したウインドウを表示しているアプリケーションに対応したグラフィックコントローラ部を、前記イベントの送信先であると判定することを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
  7. 複数の前記グラフィックコントローラ部を有することを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. 前記複数のグラフィックコントローラ部それぞれは、アプリケーションを記述する言語に対応し、実行されるアプリケーションに応じて用いられることを特徴とする請求項7に記載の情報処理装置。
  9. 前記入力デバイスの操作に応じてイベントを発生するドライバと、
    前記グラフィックコントローラ部からの前記処理要求に応じた処理を実行するアプリケーションと
    を更に有することを特徴とする請求項1乃至8のいずれか一項に記載の情報処理装置。
  10. 入力デバイスの操作に応じて発生したイベントを、該イベントの送信先である、受信したイベントに応じた処理要求をアプリケーションに対して入力するグラフィックコントローラ部の種類と前記イベントの種類とに応じて変更する変更手段と、
    前記変更手段により変更されたイベントを前記グラフィックコントローラ部に送信する送信手段と
    してコンピュータを機能させるためのプログラム。
  11. 入力デバイスの操作に応じて発生したイベントを、該イベントの送信先である、受信したイベントに応じた処理要求をアプリケーションに対して入力するグラフィックコントローラ部の種類と前記イベントの種類とに応じて変更する変更工程と、
    前記変更工程により変更されたイベントを前記グラフィックコントローラ部に送信する送信工程と
    を有することを特徴とするイベント管理方法。
JP2015145250A 2015-07-22 2015-07-22 情報処理装置及びイベント管理方法 Pending JP2017027366A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015145250A JP2017027366A (ja) 2015-07-22 2015-07-22 情報処理装置及びイベント管理方法
US15/200,848 US10319061B2 (en) 2015-07-22 2016-07-01 Information processing apparatus and event management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015145250A JP2017027366A (ja) 2015-07-22 2015-07-22 情報処理装置及びイベント管理方法

Publications (1)

Publication Number Publication Date
JP2017027366A true JP2017027366A (ja) 2017-02-02

Family

ID=57837229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015145250A Pending JP2017027366A (ja) 2015-07-22 2015-07-22 情報処理装置及びイベント管理方法

Country Status (2)

Country Link
US (1) US10319061B2 (ja)
JP (1) JP2017027366A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6745604B2 (ja) 2016-02-22 2020-08-26 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
JP2024016354A (ja) * 2022-07-26 2024-02-07 キヤノン株式会社 Webブラウジングシステム、通信端末、画像生成サーバ

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158616A (ja) * 1991-12-05 1993-06-25 Yokogawa Electric Corp タッチスクリーン装置
JP2003186664A (ja) * 2001-09-28 2003-07-04 Docomo Communications Laboratories Usa Inc 装置プラットフォームに対するguiプレゼンテーションのダイナミックな適合
JP2003208402A (ja) * 2002-01-17 2003-07-25 Univ Waseda ネットワーク機器汎用相互通信装置
JP2011041010A (ja) * 2009-08-11 2011-02-24 Ricoh Co Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
US20120254892A1 (en) * 2011-03-28 2012-10-04 Michal Grabowski Uniform Event Handling Across Multiple Computing Devices
JP2013542515A (ja) * 2010-10-01 2013-11-21 ゼット124 異環境間リダイレクション
JP2014060813A (ja) * 2005-05-20 2014-04-03 Ricoh Co Ltd 画像取扱装置、画像取扱方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732576B2 (en) * 2008-12-04 2014-05-20 Nvidia Corporation Operating system providing multi-touch support for applications in a mobile device
JP5510147B2 (ja) * 2010-07-22 2014-06-04 株式会社リコー 画像形成装置及び画面制御方法
JP5436469B2 (ja) 2011-01-28 2014-03-05 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
JP5993711B2 (ja) 2012-10-26 2016-09-14 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP2014197315A (ja) * 2013-03-29 2014-10-16 富士通株式会社 制御プログラム、情報処理装置および制御方法
US10346942B2 (en) * 2015-02-02 2019-07-09 Electronic Arts Inc. Method for event detection in real-time graphic applications

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158616A (ja) * 1991-12-05 1993-06-25 Yokogawa Electric Corp タッチスクリーン装置
JP2003186664A (ja) * 2001-09-28 2003-07-04 Docomo Communications Laboratories Usa Inc 装置プラットフォームに対するguiプレゼンテーションのダイナミックな適合
JP2003208402A (ja) * 2002-01-17 2003-07-25 Univ Waseda ネットワーク機器汎用相互通信装置
JP2014060813A (ja) * 2005-05-20 2014-04-03 Ricoh Co Ltd 画像取扱装置、画像取扱方法及びプログラム
JP2011041010A (ja) * 2009-08-11 2011-02-24 Ricoh Co Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
JP2013542515A (ja) * 2010-10-01 2013-11-21 ゼット124 異環境間リダイレクション
US20120254892A1 (en) * 2011-03-28 2012-10-04 Michal Grabowski Uniform Event Handling Across Multiple Computing Devices

Also Published As

Publication number Publication date
US10319061B2 (en) 2019-06-11
US20170024065A1 (en) 2017-01-26

Similar Documents

Publication Publication Date Title
US8717323B2 (en) Determining when a touch is processed as a mouse event
US8400647B2 (en) Image forming apparatus, operation-screen updating method, and computer program product
JP2016126657A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2010055207A (ja) 文字入力装置、文字入力方法、プログラム、記憶媒体
US11194469B2 (en) Image processing apparatus, method for controlling the same, and storage medium
JP2015035187A (ja) 情報処理装置、情報処理方法、及びプログラム
US8612889B2 (en) Information processing device, method for controlling screen display and storage medium
JP2014010691A (ja) 情報処理装置、画面表示方法、およびプログラム
US10388257B2 (en) Information processing apparatus, method of controlling the same and non-transitory computer-readable storage medium
US10319061B2 (en) Information processing apparatus and event management method
JP2015230710A (ja) 情報処理装置及びプログラム、制御方法
JP6436752B2 (ja) 情報処理装置、情報処理装置における情報処理方法、並びにプログラム
US9794437B2 (en) Information processing apparatus, information processing system, and information processing method
US9727210B2 (en) User terminal device for supporting data share function and methods thereof
JP2014071827A (ja) 操作受付装置及び方法、並びにプログラム
US20180348994A1 (en) Display device and computer-readable non-transitory recording medium with display control program stored thereon
JP2019109750A (ja) アイコン表示制御装置及びその制御方法、並びにプログラム
JP6575872B2 (ja) 情報処理装置およびプログラム
JP2019029814A (ja) 通信システム、通信方法、電子機器
JP2018192740A (ja) 画像形成装置、情報処理方法及びプログラム
JP2018180690A (ja) 印刷管理プログラム、印刷管理方法、印刷管理装置及び印刷管理システム
JP2014106807A (ja) データ処理装置、操作受付方法およびブラウジングプログラム
US11455128B2 (en) Communication method, non-transitory computer-readable storage medium storing program, and communication system
JP2011203888A (ja) 操作管理システム及び操作管理プログラム
JP2023076195A (ja) 情報処理装置、情報処理システム及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191111