以下に添付図面を参照して、この発明にかかるスクロール表示システム、スクロール表示装置、並びにスクロール表示方法の一実施の形態を詳細に説明する。
(第1の実施の形態)
この実施の形態では、以下の課題の課題を解決するものである。前述したように、画像データが画面の色数を256色に制限してもXGA(1024×768)で(1024×768x1)バイトのデータを周期的に送信するためデータ送信に時間がかかり円滑な会議ができなかった。また、XGA(1024×768)でのウィンドウ情報によりSVGA(800×600)で表示すると画面に表示されない部分が生じこの部分が会議の話題になると理解できなくなる。画像データを送信することなくデータ送信時間を短縮することにより円滑な会議を可能にするものである。
文書上にカーソルが表示されている場合邪魔となることがある。そこで、本発明はウィンドウが表示されていない領域へカーソル移動を可能とする。また、PC毎にデスクトップの内容(プログラム起動アイコン)が異なるのが一般的である。あるPCがダブルクリックにより会議に必要なプログラムを起動する場合、他のPCで同一の座標でダブルクリックを実行しても同じプログラムが実行されるにはデスクトップ環境を統一する必要があるが困難である。そこで、本発明はPC会議中にダブルクリックによりプログラム起動を簡易化する。また、PC毎にタスクトレイに挿入されているプログラム起動アイコンが異なるのが一般的である。あるPCがタスクバーアイコンクリックによりプログラムを起動する場合、他のPCで同一の座標でクリックを実行しても同じプログラムが実行されるにはタスクバー環境を統一する必要があり困難である。そこで、本発明はPC会議中にタスクバーアイコンクリックによるプログラム起動を簡易化する。
また、PC毎にスタートメニューが異なるのが一般的である。あるPCがスタートメニューからプログラムを起動する場合、他のPCで同一のマウス操作を実行しても同じプログラムが実行されにはスタートメニューを統一する必要があり困難である。そこで、本発明はPC会議中にスタートメニューよるプログラム起動を簡易化する。また、APLの起動順がPC会議制御プログラムより後である必要があれば先に起動されている場合、閉じて再起動する面倒が生じる。そこで、本発明はAPL起動順を関係なくする。また、PC毎にパフォーマンスが異なるのが一般的である。あるPCがコマンドバークリックによりダイアログボックス(メニュー)を表示しこれを制御する場合、他のPCで同様に(操作間隔、同座標マウスクリック)再現してもボタンクリックからダイアログボックス表示までの時間が異なりダイアログボックス表示前にダイアログボックスへのクリック操作が実行される等が生じる。そこで、本発明はPCパフォーマンスの違いにより実行結果が異なることを防止する。
また、PC毎にパフォーマンスが異なるのが一般的である。あるPCがダイアログボックス(メニュー)を閉じる操作をする場合、他のPCで同様に(操作間隔、同座標マウスクリック、キーボード入力)再現してもダイアログボックス消去までの時間が異なりダイアログボックス表示中に同ダイアログボックスへクリック操作が実行されることになる。そこで、本発明はPCパフォーマンスの違いにより実行結果が異なることを防止する。また、PC毎にディスクのファイル構造が異なるのが一般的である。あるPCで会議で使用するファイルを「ファイルを開く」ダイアログボックスにより開く場合、他のPCで同様に(同座標マウスクリック、キーボード入力)再現しても同じファイルが開かれることはなく不要なファイルが開かれることになる。そこで、本発明は不要なファイルが開かれることを防止する。
また、本発明はPC会議中にファイルを開く操作を簡易化する。また、「ファイルを開く」ダイアログボックス操作により入力されたファイルパス情報の取得はOSが用意する標準のダイアログボックスをAPLが用いる場合に限り可能となっている。APLが標準外のダイアログボックスによりファイルを開くと何のファイルを開いたか不明となり会議続行が不可能となる。このためファイルを開く度PC会議制御プログラムにダイアログ操作により通知するなどの面倒な操作が必要となる。そこで、本発明はPC会議中にファイルを開く操作を簡易化する。また、会議で使用する会議資料ファイルを予め送信する必要があると会議途中に予定しないファイルを開く必要が生じたとき、あるいは、送信を忘れた場合会議が中断することになる。そこで、本発明はPC会議中にファイルを開く操作を簡易化する。会議時のみ参照可能である資料がPCへ配布され残ると機密が漏れる可能性がある。そこで、本発明は機密の漏洩を防止する。また、回線の使用状況により送信した順にパケットが受信されない場合がある。この場合プルダウンメニューが表示されこのメニュー操作する場合、メニュー操作が先に再現される等が発生端末ごとに表示内容が異なる。そこで、本発明は操作順に再生する。以下、上記の具体例について詳述する。
図1−1〜図1−3は、本発明の第1の実施の形態にかかるPC会議システムの構成例を示すブロック図である。これらの図に示すように、会議システムには、離れた場所に通信ネットワークを介して相互通信可能に接続された端末を用いた「多地点会議」、会議室などにおいて通信ネットワークを介して相互通信可能に接続された端末を用いた「室会議」、机上での会議や連絡などを行なう「机上会議」に分けられる。なお、この明細書においてはパーソナルコンピュータの機能を有する端末をPCあるいはPC端末と略して記述する。
これらの図において、符号10はLAN(Local Area Network:企業情報通信網)、符号20はスクリーン、符号30はプロジェクタ、符号40はルータ、符号50はWAN(Wide Area Network:広域通信網)、符号60は基地局、符号70は一般の電話、符号75は電話回線、符号100TはタブレットPC、符号100Tmは無線通信によるタブレットPC、符号100Pは一般的に普及されているパーソナルコンピュータ、符号110は表示一体型座標入力装置(PDP:液晶リアプロジェクタなど)である。
タブレットPC100T(図1−1下側)は、LAN10、ルータ40、WAN50を介して遠隔地、LAN10内の各PC端末と接続されている。大型の表示一体型座標入力装置110をディスプレイとするPC端末は、会議室などに設置され複数の人に画面が共有される。タブレットPC100Tmは、無線モデムにより構外から他のPC端末と接続される。タブレットPC100T(図1−1上側)は、プロジェクタ30へ画像出力、スクリーン表示によって画面を共有する。一般的なPC100Pは、ペン操作に比べて操作性が劣るがマウスで操作を行なう。なお、会議で使用するプログラムは各PC端末に存在する。
図2は、図1における表示一体型座標入力装置110の構成を示す説明図である。ここでは、表示一体型座標入力装置110として、大型(50インチ、60インチなど)の液晶プロジェクタを例にとって説明する。この表示一体型座標入力装置110は、大きくは、座標入力装置111、表示装置112、ホスト装置113から構成されている。座標入力装置111は、表示装置112の画面を隠さないように設置された画面上に触れた座標指示物の位置を表示装置112の画素(ピクセル)数(X軸方向1024、Y軸方向768など)に対応した(X,Y)座標を周期的(5ms、10msなど)を検出し、ホスト装置113へPCI/F(RS232C、USBなどの通信手段)を介して送出する。表示装置112は、ホスト装置113が出力するRGB画像データを液晶画面、PDP画面へ表示する。
図3は、図2の座標入力装置111における座標検知方式を示す説明図である。ここでは、光遮断方式を例にとって説明する。左座標指示物検知器115、右座標指示物検知器116は、半導体レーザーにより照射光を発光し、光再帰性販社部材114により反射される光を検知してアナログデータに変換し、座標検知制御装置117へ送出する。画面上に指、ペンなどの座標指示物がない場合、照射光は光再帰性販社部材114により180度反対方向に反射され受光される(画面右側の矢印参照)。
他方、座標指示物が画面上に存在する場合、照射光は遮られ光再帰性販社部材114に反射されず左座標指示物検知器115、右座標指示物検知器116は受光しない。この受光のない方向(光遮断角)を左座標指示物検知器115、右座標指示物検知器116により左光遮断角度(θL)、右光遮断角度(θR)を検出し、図示するH,W,θL,θRから下記の式にしたがって座標指示物のX座標、Y座標を算出する。
X=W×tanθR/(tanθL+tanθR)
Y=H−W×tanθL×tanθR/(tanθL+tanθR)
その後、この検知座標は、ホストPC113に標準装備されているRS232C、USBなどの通信手段により通知される。
図4は、図1におけるタブレットPCの構成を示す説明図である。タブレットPCは、キーボードとマウス操作を前提とする既存のPCに代わり、ペンでマウスの代わりに操作し、キーボードの代わりにテキスト入力を手書き文字描画、あるいは文字認識により行なえるタッチパネルが標準装備になっている。また、米Microsoft社からタブレットPC用OSである「Windows(登録商標) PC Tablet PC Edition」がリリースされ、手書き文字認識エンジン、音声認識エンジンなどが提供されている。
タブレットPCは、一般的なノートPCと同様に液晶ディスプレイとキーボード、マウスで構成され同様の操作が可能になる。また、図4右側に、ディスプレイを180度回転させ折りたたんだ状態を示す。電子ペン101とタブレットPCにより内蔵されたセンサーによりディスプレイ上の電子ペン101の座標位置を検知し、マウスのクリック、ドラッグ操作をエミュートする。水平のディスプレイと電子ペン101によりマウス操作では困難な手書き文字が紙に文字を書く感覚で描画可能になる。
図4右側下部に、電子ペン101が描画するディスプレイ102の構成を示す。電子ペン101が直接接触する面には強化ガラス102aが設けられ、液晶ディスプレイユニット102bが傷つくのを防止する。液晶ディスプレイユニット102bの下には電子ペン101の位置を検知する電磁誘導センサーユニット102cが設けられ、ディスプレイの画像品質を損なわない構造となっている。なお、ここでは、ディスプレイを折りたたむ形式を例にとったが、ディスプレイ部分を取り外せるタイプもある。
図5−1は、図4における電磁誘導による座標検知方式例を示す説明図である。この図において、コイル104とコンデンサ105を有する共振回路103が電子ペン101に内蔵され、電磁誘導センサーユニット102cのセンサーコイル106に流れる電流による磁界により、コイル103に誘導起電圧が生じ、コンデンサ104を有する共振回路103が励磁され共振電流が流れる。センサーコイル106は、座標検知精度に比例した密度に設置される。この図ではX軸方向を検知するためのセンサーコイルの一部を示している。図示しないが、これと直角方向にY軸方向を検知するためのセンサーコイルが配置されている。座標検知制御装置107は、送受切替スイッチ108を制御して送受切替スイッチ108をACに接続し、交流電源からセンサーコイルに電流を流し、X軸コイル切替スイッチ109を制御し、高速にスイッチを切り替え順次センサーコイルへ電流を流す。これにより、センサーコイル上に順次磁界が発生する。この磁界により電子ペン101が共振することになる。つぎに、送受切替スイッチ108をBCに接続し、X軸コイル切替スイッチ109を順次高速に切り替える。このとき、電子ペン101の共振電流が発する磁界によりセンサーコイルに誘導電圧が発生する。このセンサーコール106に発生する誘導起電圧を増幅し測定(V)する。
図5−2に上記の誘導起電圧分布図を示す。電子ペン101がセンサーコイル106の(2)上にある場合、センサーコイル106の(2)から受信される誘導起電圧がもっとも高くなる。これにより、誘導起電圧分布のもっとも高い点を検出することによりX座標が確定する。また、図示していないが同様にしてY座標を確定する。
このように検知した電子ペン101の座標は、PCI/F(RS232C、USBなど汎用I/Fまたは専用I/F)によりPCへ通知される。なお、座標検知制御装置107はディスプレイ102に内蔵されている。
つぎに、以上のようなシステムおよび端末などの構成を前提としたPC会議方式について図6および図7を参照し説明する。「PC会議制御」プログラムは、OS(オペレーションシステム)が提供するディスクトップアイコンのダブルクリックなどの手段により起動されてPC会議を制御する。PC会議操作権端末100a(図1における100P,100T,100Tmの何れかが該当)は、会議資料を表示するAPLプログラム、PCの操作権を有し、操作情報が各PC会議端末100へネットワークを介して送信され、各PC端末の表示画面が統一される。PC会議操作権端末100aのPC会議制御部120は、座標入力装置、マウスにより入力される全マウスデータをOSが提供する全マウス入力I/F121を介して受け取り(Windows(登録商標)におけるHook機能)、APL126に渡すとともに、マウスデータパケット136により各PC会議端末100bへ送信する。音声入力は音声データパケット134により各PC会議端末100bへ送信する。
また、OSが提供するI/Fによりウィンドウ情報(左上原点座標、幅、高さ、重なり順(Zオーダー)、ウィンドウキャプション、スタイル)を取得し、ウィンドウ情報パケット133を送信する。さらに、ディスクトップアイコンのダブルクリック、タスクバーボタンクリック、スタートメニュークリックによる起動プログラムファイルパスを取得し、プログラム起動パケット137を送信する。また、画面色数(True Colorなど)、画面領域(1024,768など)を取得し、画面情報パケット138を送信する。
操作権のないPC会議端末100bにおける座標入力装置(マウス)からの入力はPC会議制御ツールバー操作以外は破棄する。また、操作権のないPC会議端末100bにおけるキーボードからの入力は破棄する。操作権のないPC会議端末100bにおける音声入力は各PC端末へ送信される。OSが提供するOS APL124により、ウィンドウ表示、プログラム起動、画面設定を行なう。
つぎに、各パケットの機能について説明する。会議開始パケット139によりPC会議を開始する。画面情報パケット138により画面色数、画面領域を設定する。プログラム起動パケット137によりAPLプログラムを検索起動する。APLファイルつきである場合、APLファイルをディスクの作業領域に格納し、このファイルパスによりプログラムを起動する。マウスデータパケット136によりマウスボタン情報、マウス座標をOSが提供するI/FによりAPLに渡す。キーボードデータパケット135によりキーボードデータをOSが提供するI/FによりAPLへ渡す。音声データパケット134により、音声データをスピーカへ出力する。ウィンドウ情報パケット133によりウィンドウの移動、表示、消去の確認を行なう。ファイル入力パケット132によりAPLファイルをディスクの作業領域へ格納し、このファイルパスをAPLの「ファイルを開く」ダイアログボックスへ出力しAPLファイルを開く。操作権パケット131により操作権を要求、許可、却下を行なう。会議終了パケットにより作業領域へ格納したAPLファイルの削除、PC会議制御プログラムを終了する。
つぎに、プログラム起動監視について図8を参照し説明する。APLプログラムが表示するウィンドウ外でのタッチ(クリック)は直ぐにマウスデータとせず、クリックの後ダブルクリック許容時間(OSが提供するI/Fにより取得)内につぎのクリックがない場合クリック操作としてマウスデータパケット136を各端末へ送信を行なう(図8参照)。ダブルクリック許容時間内につぎのクリックがある場合ダブルクリックとしマウスデータを出力し、OSが提供するI/Fによりダブルクリックされたアイコンのファイルパス情報を取得し、プログラム起動パケット137を送信する。
タッチ座標がタスクバー上である場合各端末へマウスデータを送信せず、デタッチ(クリックOFF)によりOSが提供するI/Fを介して起動されたプログラムのファイルパス情報を取得し、プログラム起動パケット137を送信する(図8中央右下ボタン参照)。「スタートボタン」がタッチされた場合各端末へマウスデータを送信せず、メニューが閉じた時点でOSが提供するI/Fを介して起動されたプログラムのファイルパス情報を取得し、プログラム起動パケット137を送信する(図8中央スタートボタン参照)。PC会議開始時既にAPLが起動されている場合、ウィンドウキャプション(一般的にプログラム名、ファイル名が設定される))を取得、プログラムのファイルパス、開いているファイルのファイルパス情報を取得、プログラム起動パケット137を送信する(図8下図参照)。
つぎに、ウィンドウ表示監視について図9を参照して説明する。表示中のウィンドウはOSが提供するI/Fにより「ウィンドウキャプション」(一般的にプログラム名、ファイル名が設定される)、ウィンドウ種別を定義する「ウィンドウクラス」、「ウィンドウスタイル」、他ウィンドウとの重なり順「Zオーダー」、ウィンドウ左上原点座標(X,Y)、ウィンドウ幅(W)、ウィンドウ高さ(H)を取得する(図9上参照)。マウスデータ入力時表示中の全ウィンドウ情報を取得、新たなウィンドウ(ダイアログボックス)が表示された場合「ウィンドウ情報パケット(表示)」、表示されていたウィンドウが閉じた場合「ウィンドウ情報パケット(消去)」を各端末へ送信する(図9下参照)。マウスデータ入力時表示中の全ウィンドウ情報を取得、新たなウィンドウ(メニュー)が表示された場合「ウィンドウ情報パケット(表示)」、表示されていたウィンドウが閉じた場合「ウィンドウ情報パケット(消去)」を各端末へ送信する(図9下参照)。
つぎに、ファイルオープン監視について図10を参照し説明する。ウィンドウ表示監視により「ファイルオープンダイアログボックス」が表示された場合、ダイアログボックスが閉じるまでのマウス操作、キーボードデータ操作データは他の端末へ送信しない(図10上参照)。ファイルオープンダイアログボックスにより入力されたファイルパスをOSが提供するI/Fを介して取得可能である場合、ダイアログが閉じたときファイルパスを取得する(図10中央参照)。取得できない場合、APLが表示した「ファイルを開く」ダイアログボックスを縮小表示、PC会議制御プログラムが「ファイルを開く」ダイアログボックスを表示、ファイルパスを取得する(図10中央参照)。APLの「ファイルを開く」ダイアログボックスを再表示、以下手順によりAPLファイルをオープン、ファイル入力パケット132を各端末へ送信する(図10下図参照)。
(1)取得したファイルパスをOSが提供するAPL間共通通信領域(Windows(登録商標)のクリップボード)へコピーする。
(2)ファイル名入力ウィンドウをアクティブにする。
(3)「Contol+V」、「Enter」キーコードをOSが提供するI/Fを介して出力する。
つぎに、ファイルオープンダイアログボックス登録方法について図11を参照し説明する。APLウィンドウ情報からファイルオープンダイアログが登録されていない場合、登録メッセージを表示する(図11上参照)。一般的に流通しているAPLについては予め登録されている。続いて、APLプログラム操作により「ファイルを開く」ダイアログボックスを表示、ファイル名入力領域をタッチ、登録する(図11下参照)。APLウィンドウのウィンドウキャプション、スタイル、クラス、「ファイルを開く」ダイアログボックスのウィンドウキャプション、スタイル、クラス、ファイル名入力領域のウィンドウキャプション、スタイル、クラスを保存する。
つぎに、PC会議主催端末操作について図12−1〜図12−2を参照し説明する。PC会議制御プログラムはOSが提供するディスクトップアイコンのダブルクリックなどにより起動されPC会議開始ツールバーを表示する(図12−1上参照)。PC会議主催端末は「主催」ボタンにより会議を開始、表示される「PC会議主催」ダイアログボックスの「登録」ボタンにより「PC会議メンバ登録」ダイアログボックスを表示、「メンバ」ボタンにより「PC会議メンバ選択」ダイアログボックスを表示、PC会議メンバを選択する(図12−1中央参照)。「PC会議メンバ選択」ダイアログボックスにより、登録されている会議メンバリストから会議参加者を選択する(図12−1下参照)。名前をタッチ(クリック)主催者は「主催」ボタン、参加者は「参加」ボタンにより選択する。「PC会議メンバ登録」ダイアログボックスにより、会議メンバの「名前」、「所属」、「ネットワークアドレス」を登録、名前をタッチ「削除」ボタンにより登録情報を削除する(図12−2参照)。「開始」ボタンにより「会議開始パケット」、「画像情報パケット」送信PC会議を開始する(図12−1中央参照)。
つぎに、PC会議参加端末操作について図13を参照し説明する。PC会議参加端末はPC会議制御プログラムを起動、「参加」ボタンによりPC会議開始通知を待つ(図13上参照)。「会議開始パケット」が受信するとPC会議開始メッセージが表示される(図13中央参照)。画面情報パケット138により画面をOSが提供するI/Fを介してPC会議主催端末と同様に設定する。PC会議資料を表示するAPLプログラムはPC会議主催端末から「プログラム起動パケット」によりプログラム名が通知される。各端末はPC内のプログラムを検索起動する(図13下参照)。プログラムが検索できない場合、「APL検索」ダイアログボックスが表示される。
つぎに、PC会議資料への上書きについて図14を参照し説明する。まず、PC会議資料を表示するAPLプログラムとは別に上書きAPLプログラムを起動し、プログラム起動パケット137を各受信端末へ送信する。上書きAPLは全画面サイズとなる透明ウィンドウを会議資料画面上に表示、手書きで図形、文字を説明する箇所を明示、あるいは補足説明のため描画する。プログラム起動パケット137により受信端末に上書きAPLが起動される。手書き描画された図形、文字はマウスドラッグ座標としてマウスデータパケット136により受信端末へ送信され、マウスデータとして上書きAPLに通知され操作端末と同様に図形、文字が描画される。
つぎに、PC会議画面操作権の取得について図15を参照し説明する。まず、PC画面操作権は開始時PC会議主催端末に有り、PC会議参加端末は「操作権」ボタンのタッチによりPC会議主催端末へ操作権パケット(要求)131を送信する(図15上参照)。PC会議主催端末は他端末から操作権パケットの受信があると要求メッセージが表示される(図15中央上参照)。なお、PC会議主催端末が「却下」ボタンを押すと操作権要求端末へ操作権パケット(却下)131が送信され却下メッセージが表示される(図15上参照)。PC会議主催端末が「許可」ボタンを押すと操作権要求端末以外へ操作権パケット(移動)131が送信され移動メッセージが表示される(図15中央下参照)。操作権パケット(移動)131を受信した端末で操作権を持っている端末は操作権パケット(開放)131により「送信パケット番号」をPC会議主催端末へ渡す(図15中央参照)。PC会議主催端末は「操作権パケット(開放)」により送信パケット番号を操作権パケット(許可)131により要求端末へ通知する(図15上側下図参照)。操作権要求端末は「操作権パケット(許可)」を受信すると許可メッセージが表示されPC画面操作が可能となる。以後、受信した送信パケット番号からPC操作パケットを各端末へ送信する(図15上参照)。
つぎに、PC会議制御方式について図16を参照し説明する。PC会議制御プログラム140は、独立して動作する「PC会議開始制御141」、「マウスデータ入出力制御142」、「キーボードデータ入力制御143」、「音声データ入出力制御144」、「PC会議パケットデータ受信制御145」プログラムで構成され、「会議メンバテーブル146」、「ウィンドウ情報テーブル147」、「送信パケット番号148」、「受信パケット番号149」、「ファイルオープンダイアログ登録ファイル150」、「PC会議ファイル151」、「会議メンバ登録ファイル152」を参照する。
ファイルオープンダイアログ登録ファイル150は、APL毎の「ファイルを開く」ダイアログボックス情報が登録保存される。APL操作により表示されたウィンドウがファイルオープンダイアログである場合APLが入力するファイルパスを取得する。「PC会議メンバ登録ファイル152にPC会議メンバとなる氏名、所属、ネットワークアドレスが登録保存される。PC操作権を持つ端末がPC会議ファイル151を開くとファイルが各端末へ送信され保存される。PC会議主催端末は開始時、参加端末は会議開始パケット139の受信により設定する。表示中のウィンドウ情報が常に監視され設定される。送信パケット番号148は、PC操作権を持つ端末によりパケット送信毎にカウントアップする。受信パケット番号149は受信パケット番号が同一である場合カウントアップされ、パケットの実行順をパケット番号順に統一する。
OS API155は、OSがAPLプログラムに提供する機能を実行するためのI/Fを示す。画面に表示されているウィンドウの表示位置(Zオーダー(重なり順)、左上原点座標、幅、高さ)、ウィンドウ識別情報(ウィンドウキャプション、クラス、スタイル)を取得する。また、Zオーダー、位置、幅、高さを指定してウィンドウを表示する。デスクトップ上のダブルクリック、タスクバーから起動されたプログラムのファイルパスを取得する。画面の色数(256色等)、領域(1024×768等)を取得する。また、画面の色数、領域を設定する。PC会議開始からPC会議終了までの操作権パケット131を除く全パケットデータが生成された時間(PC会議開始時刻からの経過時間)とともに保存される。
つぎに、PC会議開始の制御動作について図17のフローチャートを参照し説明する。まず、PC会議制御プログラム140(図16参照)は、ディスクトップアイコンのダブルクリックなどOSが提供する手段により起動されPC会議開始ツールバーを表示する(ステップS1)。続いて、PC会議ツールバーへのタッチ(クリック)がマウスの入力によりあったか否かを判断し(ステップS2)、マウスによるタッチ入力あると、さらに「主催」ボタンがタッチされたか否かを判断する(ステップS3)。ここで「主催」ボタンへのタッチでPC会議メンバを設定し(ステップS4)、PC会議の開始であるか否かを判断する(ステップS5)。ここで、PC会議の開始であると判断するとPC会議を開始し、PC会議開始ツールバーに変えてPC会議ツールバーを表示する(ステップS6)。
続いて、この会議を主催にし(ステップS7)、さらに操作権有りとする(ステップS8)。その後、「参加」ボタン(図13参照)のタッチ有無を判断し(ステップS9)、「参加」ボタンがタッチされた場合、「参加」ボタンによりPC会議を開始し、PC会議を参加とし(ステップS10)、さらにそのPC端末を操作権無しとする(ステップS11)。その後、PC会議端末は、PC会議主催端末からの会議開始パケット139を待つ。会議開始パケット139を受信すると、受信パケット番号149を初期化し(ステップS12)、送信パケット番号148を初期化する(ステップS13)。
続いて、マウスデータ入出力制御を開始し(ステップS14)、キーボードデータ入出力制御を開始する(ステップS15)。さらに、音声データ入出力制御を開始し(ステップS16)、PC会議パケットデータ受信を開始する(ステップS17)。その後、このPC会議が主催であるか否かを判断し(ステップS18)、PC会議操作権端末は、主催であれば、PC会議の主催制御を実行し(ステップS19)、その後、会議が終了であるか否かを判断する(ステップS20)。すなわち、「終了」ボタン、会議終了パケット130によるPC会議終了通知を監視する。PC会議が終了である場合、会議終了パケット130を送信し(ステップS21)、会議資料として他PCから送信されたAPLファイルを削除し(ステップS22)、PC会議ツールバーを消去する(ステップS23)。
つぎに、PC会議メンバ設定の制御動作について図18を参照し説明する。まず、PC会議主催ダイアログボックスを表示し(ステップS31)、このPC会議ダイアログボックスへのタッチがあるか否かを判断する(ステップS32)。ここでマウス入力によるタッチである場合、さらに、「会議名」入力であるか否かを判断する(ステップS33)。ここで「会議名」入力であれば、その「会議名」ボタンにより会議名を入力、会議メンバテーブルに設定する(ステップS34)。続いて、「メンバ」ボタンがタッチされた否かを判断し(ステップS35)、「メンバ」ボタンがタッチされたならば、「メンバ」ボタンにより「PC会議メンバ選択ダイアログボックス」を表示し(ステップS36)、PC会議メンバを選択する(ステップS37)。そして、選択した会議メンバと主催者を会議メンバテーブルへ設定し(ステップS38)、PC会議メンバ選択ダイアログを消去する(ステップS39)。ステップS35において「メンバ」ボタンがタッチされていない場合、「登録」ボタンがタッチされたか否かを判断し(ステップS40)、タッチされたならば、「登録」ボタンにより「PC会議メンバ登録ダイアログボックス」を表示し(ステップS41)、PC会議メンバとなる氏名、所属、ネットワークアドレスを会議メンバ登録ファイルへ登録、あるいは削除する(ステップS42)。その後、このダイアログを消去する(ステップS43)。ステップS40において「登録」ボタンがタッチされていない場合、「キャンセル」ボタンがタッチされたか否かを判断し(ステップS44)、「キャンセル」ボタンがタッチされた場合、PC会議主催ダイアログを消去する(ステップS45)。ステップS44において、「キャンセル」ボタンがタッチされていない場合、「開始」ボタンがタッチされた否かを判断し(ステップS46)、PC会議主催ダイアログを消去する(ステップS47)。このように、「開始」ボタンによりPC会議を開始する。
つぎに、PC会議主催の制御動作について図19のフローチャートを参照し説明する。まず、会議メンバテーブル146から「会議開始パケット」を作成し送信し(ステップS51)、画面情報(色数、画面領域)を取得し(ステップS52)、「画面情報パケット」を送信する(ステップS53)。続いて、表示中の全てのウィンドウ情報(左上原点座標、幅、高さ、キャプション、クラス、タイトル、Zオーダー)を取得し(ステップS54)、ウィンドウ情報テーブルを設定する(ステップS55)。続いて、APLプログラムが起動されウィンドウを表示している否か判断する(ステップS56)。さらに、APLが表示するウィンドウのウィンドウキャプション(一般的にAPL名、入力ファイル名が設定される)を取得し(ステップS57)、APL表示であるかを判断する(ステップS58)。ここで、APLファイル表示であれば、このウィンドウキャプションからファイルが設定されているか判定し、開いているファイルを検索、ファイル添付、プログラム起動パケットを作成し送信する(ステップS59)。ファイルを開いていない場合、ファイル無しプログラム起動パケットを作成し送信する(ステップS60)。続いて、起動されたAPLプログラムが表示するウィンドウ位置、大きさを同一にする「ウィンドウ情報(移動)パケットを作成し送信し(ステップS61)、起動されているAPLの「ファイルを開く」ダイアログボックスの登録確認、登録を行なう(ステップS62)。
つぎに、ファイルオープンダイアログ登録の制御動作について図20のフローチャートを参照し説明する。ここでは、「APLウィンドウ情報」を入力値として渡される。まず、APLウィンドウが「ファイルオープンダイアログ登録ファイル」に既に登録されているか検索する(ステップS71)。ここで、登録済みでなければ、「ファイルを開く」ダイアログボックス登録メッセージを表示し(ステップS72)、さらに「ファイルを開く」ダイアログボックス登録ツールバーを表示し(ステップS73)、そのステータスを「登録中」とする(ステップS74)。続いて、マウスデータが入力されたか否かを判断し(ステップS75)、全マウスデータが入力されたならば、マウスデータをAPLプログラムへ通知する(ステップS76)。その後、ステータスを「終了」とし(ステップS77)、「キャンセル」ボタンがタッチされたか否かを判断し(ステップS78)、タッチされた」ならば、「キャンセル」ボタンにより本制御により登録したファイルオープンダイアログ情報を削除する(ステップS79)。一方、「キャンセル」ボタンがタッチされていなければ、「登録」ボタンがタッチされたか否かを判断する(ステップS80)。ここで、「登録」ボタンがタッチされたならば、「登録」ボタンにより直前にタッチされ保存されているウィンドウ情報をファイルオープンダイアログ情報として登録する(ステップS81)。一方、「登録」ボタンがタッチされていなければ、さらに「終了」ボタンがタッチされたか否かを判断する(ステップS82)。ここで、「終了」ボタンがタッチされていなければ、タッチ座標のウィンドウ情報、タッチ座標ウィンドウの親ウィンドウ(ファイルを開くダイアログボックス)情報を取得し、一時保存する(ステップS83)。続いて、標準ダイアログであるか否かを判断する(ステップS84)。すなわち、ウィンドウスタイル、クラスから標準の「ファイルを開く」ダイアログか判定する。ここで、標準ダイアログであれば、ダイアログを「標準」とする(ステップS85)。一方、ステップS84において標準ダイアログでなければ、ダイアログを「特殊」とする(ステップS86)。一方、ステップS82において「終了」ボタンがタッチされた場合、ダイアログ登録ツールバーを消去し(ステップS87)、ステータスを「終了」とする(ステップS88)。そして、ダイアログウィンドウが表示中であるかを判断し、「ファイルを開く」ダイアログボックスが閉じるのを監視する(ステップS89)。
つぎに、マウスデータ入出力の制御動作について図21のフローチャートを参照し説明する。まず、全マウスデータを入力し、監視し(ステップS91)、「終了」ボタン、「会議終了パケット」によるPC会議終了通知を監視し(ステップS92)、終了通知であれば、終了する。一方、終了通知でなければ、マウスデータの入力があるか否かを判断し(ステップS93)、マウスデータ入力であれば、マウス座標のウィンドウ情報を取得する(ステップS94)。続いて、PC会議ツールバー座標の入力であるか否かを判断し(ステップS95)、PC会議ツールバー座標である場合、「PC会議ツールバー制御」を実行する(ステップS96)。ステップS95においてPC会議ツールバー座標ではない場合、さらに、操作権が有りであるか否かを判断し(ステップS97)、操作権有りであれば、さらにデスクトップ座標であるか否かを判断する(ステップS98)。ここで、デスクトップ座標であれば、デスクトップ制御を実行する(ステップS99)。すなわち、操作権が無いPC端末はPC会議ツールバー操作のみ可能となる。デスクトップウィンドウ座標である場合「デスクトップ制御」を実行する。ステップS98においてデスクトップ座標でなければ、さらにタスクバー制御であるか否かを判断し(ステップS100)、タスクバーウィンドウ座標である場合「タスクバー制御」を実行する(ステップS101)。ステップS100においてタスクバー制御でなければ、さらにAPLウィンドウであるか否かを判断する(ステップS102)。ここで、APLウィンドウであれば、表示中の全ウィンドウ情報を取得する(ステップS103)。続いて、新ウィンドウ表示であるか否かを判断し(ステップS104)、すなわち、ウィンドウ情報テーブルに存在しないウィンドウが表示されている場合、新ウィンドウ表示と判定する。ここで、新ウィンドウ表示であれば、さらに、ファイルオープンダイアログであるか否かを判断し(ステップS105)、ファイルオープンダイアログであれば、新表示されたウィンドウがファイルオープンダイアログ登録ファイルに登録されているウィンドウである場合ファイルパス入力制御を実行する(ステップS106)。ステップS104において新ウィンドウでなければ、ファイルオープンダイアログ以外のウィンドウ表示である場合「ウィンドウ情報(表示)パケット」を送信する(ステップS107)。続いて、ウィンドウ消去であるか否かを判断し(ステップS108)、ウィンドウが消去された場合、「ウィンドウ情報(消去)パケット」を送信する(ステップS109)。一方、ウィンドウが消去されなければ、取得したウィンドウ情報をウィンドウ情報テーブルに設定し(ステップS110)、APLへのマウス操作を実行する(ステップS111)。
つぎに、PC会議ツールバーの制御動作について図22のフローチャートを参照し説明する。タッチ時のマウスデータが入力値として渡される。まず、「操作権」ボタンの座標であるか否かを判断する(ステップS121)、ここで、「操作権」ボタン座標である場合、操作権ボタンを通常表示から選択表示へ変更する(ステップS122)。一方、「終了」ボタン座標である場合、終了ボタンを通常表示から選択表示へ変更する(ステップS123)。続いて、マウスデータの入力があるか否かを判断し(ステップS124)、マウスデータの入力であれば、その入力が、ボタンOFFであるか否かを判断する(ステップS125)。ここで、ボタンOFFであれば、さらに終了ボタンの入力であるか否かを判断する(ステップS126)。ここで、終了ボタンの入力であれば、「終了」ボタンによりPC会議終了通知する(ステップS127)。一方、終了ボタンの入力でなければ、操作権有りであるか否かを判断し(ステップS128)、操作権有りであれば、さらにPC会議主催であるか否かを判断する(ステップS129)。ここで、PC会議主催である場合、「操作権」ボタンによりPC会議主催端末は各端末へ操作権を戻したことを「操作権パケット(移動)」より通知する(ステップS130)。一方、PC会議主催ではない場合、「操作権」ボタンによりPC会議参加端末は主催端末へ「操作権パケット(要求)」により要求する(ステップS131)。
つぎに、デスクトップ制御動作について図23のフローチャートを参照し説明する。タッチ時のマウスデータが入力値として渡される。まず、タッチ座標マウスデータを保存し(ステップS141)、マウスデータを再生し(ステップS142)、そのマウスデータをAPLプログラムへ通知する。さらに、クリック回数を0にし(ステップS143)、マウスデータの入力有無を判断する(ステップS144)。マウスデータの入力がなければ、さらに、ダブルクリック許容時間内であるか否かを判断する(ステップS145)。ここで、ダブルクリック許容時間内でなければ、1回目のクリック操作(タッチ、デタッチ)から次のタッチがダブルクリック許容時間(OSが提供するI/Fにより取得)以上無い場合、タッチからデタッチまでのマウスデータを送信する(ステップS146)。ステップS144においてマウスデータの入力があれば、ダブルクリック監視タイマを停止し(ステップS147)、そのマウスデータを保存し(ステップS148)、マウスデータを再生する(ステップS149)。さらにボタンOFFであるか否かを判断し(ステップS150)、クリック回数を一つインクリメントし(ステップS151)、クリック回数が2回であるか否かを判断する(ステップS152)。2回のクリック回数でなければ、1回目のデタッチ(ボタンOFF)によりダブルクリック監視タイマをスタートする(ステップS153)。一方、クリック回数が2回である場合、ダブルクリック実行時、表示中の全ウィンドウ情報を取得する(ステップS154)。さらに、新ウィンドウであるか否かを判断し(ステップS155)、新ウィンドウであれば、ダブルクリックにより新たなウィンドウが表示された場合ウィンドウテーブルに設定する(ステップS156)。続いて、ダブルクリックが実行されたアイコンのファイルパスをOSが提供するI/Fにより取得する(ステップS157)。さらに、APLファイルであるか否かを判断し(ステップS158)、APLファイルであれば、実行ファイル(xxxxx/xxxxxx/xxxxxx.exe)以外である場合、取得したパスのファイルを添付、ファイル拡張子に関連付けられているプログラムを取得「プログラム起動パケット(ファイル付き)」を送信する(ステップS159)。一方、実行ファイル(xxxxx/xxxxxx/xxxxxx.exe)以外である場合、「プログラム起動パケット(ファイル無し)」を送信する(ステップS160)。これらの動作を実行した後、プログラム起動端末と同表示にするため起動プログラムの「ウィンドウ情報(移動)」を送信する(ステップS161)。さらに、起動プログラムの「ファイルを開く」ダイアログの登録確認、または登録を行なう(ステップS162)。
つぎに、タスクバー制御動作について図24のフローチャートを参照し説明する。タッチ時のマウスデータが入力値として渡される。まず、タッチ座標マウスデータを保存する(ステップS171)。続いて、タッチ座標がスタートボタンであるか否かを判断する(ステップS172)。ここで、スタートボタンのタッチ座標であれば、スタートボタン制御のモードにし(ステップS173)、スタートボタンのタッチ座標でなければ、タスクバー制御のモードにする(ステップS174)。続いて、マウスデータの入力を判断し(ステップS175)、マウスデータの入力があれば、そのマウスデータを再生し(ステップS176)、さらにボタンOFFであるか否かを判断する(ステップS177)。ここで、ボタンOFFであれば、ボタンOFF時表示中の全ウィンドウ情報を取得する(ステップS178)。続いて、スタートボタン制御であるか否かを判断し(ステップS179)、スタートボタン制御であれば、さらに、スタートメニューウィンドウ表示中であるか否かを判断する(ステップS180)。すなわち、「スタート」ボタン操作によりメニューが表示中である場合、消去されるまでタスクバー制御を続行する。ステップS180においてスタートメニューウィンドウ表示中でなければ、さらに新ウィンドウの表示である否かを判断し(ステップS181)、新ウィンドウの表示であれば、タスクバー操作により新APLウィンドウが表示された場合ウィンドウテーブルに設定する(ステップS182)。続いて、タスクバー操作により起動されたファイルパスをOSが提供するI/Fにより取得する(ステップS183)。続いて、APLファイルであるか否かを判断する(ステップS184)。実行ファイル(xxxxx/xxxxxx/xxxxxx.exe)以外である場合、取得したパスのファイルを添付、ファイル拡張子に関連付けられているプログラムを取得「プログラム起動パケット(ファイル付き)」を送信する(ステップS185)。一方、実行ファイル(xxxxx/xxxxxx/xxxxxx.exe)以外である場合、「プログラム起動パケット(ファイル無し)」を送信する(ステップS186)。続いて、プログラム起動端末と同表示にするため起動プログラムの「ウィンドウ情報(移動)」を送信する(ステップS187)。さらに、起動プログラムの「ファイルを開く」ダイアログの登録確認、または登録を行なう(ステップS188)。
つぎに、APLマウス操作の制御動作について図25のフローチャートを参照し説明する。タッチ時のマウスデータが入力値として渡される。まず、タッチ座標マウスデータを保存し(ステップS191)、APLへマウスデータを渡す(ステップS192)。続いて、マウスデータブロック数を1に初期化し(ステップS193)、マウスデータの入力有無を判断する(ステップS194)。ここで、マウスデータの入力があれば、マウスデータを保存し(ステップS195)、再生し(ステップS196)、さらにマウスデータブロック数を一つ進める(ステップS197)。続いて、マウスデータ数が特定サイズ(N)であるか否かを判断する(ステップS198)。特定サイズ(N)であれば、特定サイズ(N)単位に区切り「マウスデータパケット」を送信する(ステップS199)。続いて、マウスデータブロック数を0にし(ステップS200)、ボタンOFFであるか否かを判断し(ステップS201)、ボタンOFFでれば、さらにマウスデータブロック数>0であるかを判断し(ステップS202)、マウスデータブロック数>0でれば、ボタンON(タッチ)からボタンOFF(デタッチ)までを1単位に制御し、マウスデータパケットを送信する(ステップS203)。
つぎに、PC会議ツールバーの制御動作について図26のフローチャートを参照し説明する。ファイルオープンダイアログ情報が入力値として渡される。まず、キーボードデータ入出力制御へファイルパス取得中を通知し(ステップS211)、標準ダイアログであるか否かを判断し(ステップS212)、標準ダイアログでない場合、APLプログラムが表示した「ファイルを開く」ダイアログボックスを縮小表示する(ステップS213)。さらにPC会議制御プログラムが「ファイルを開く」ダイアログボックスを表示する(ステップS214)。続いて、マウスデータの入力有無を判断し(ステップS215)、マウスデータの入力であれば、入力にしたがった再生を行ない(ステップS216)、オプンダイアログ消去であるか否かを判断する(ステップS217)。すなわち、「ファイルを開く」ダイアログボックスが閉じるまでマウスデータ入力、マウスデータ再生を継続する。オプンダイアログ消去であれば、さらに、標準ダイアログであるか否かを判断し(ステップS218)、標準ダイアログであれば、OSが提供するI/Fにより標準ダイアログボックスにより入力されたファイルパス情報を取得する(ステップS219)。さらに、「ファイル入力パケット」を送信する(ステップS220)。一方、ステップS218において標準ダイアログでなければ、APLプログラムが表示した「ファイルを開く」ダイアログボックスを再表示する(ステップS221)。さらに、ファイル入力ウィンドウ情報(左上原点座標、幅、高さ)を取得、ウィンドウ内マウスデータ(ボタンON)、マウスデータ(ボタンOFF)を作成再生する(ステップS222)。続いて、入力したファイルパスをAPL共通参照領域(クリップボード)へコピーする(ステップS223)。さらにファイル名入力ウィンドウへファイルパスを表示(Control+V)、入力する(Enter)(ステップS224)。そして、キーボードデータ入出力制御へファイルパス取得完了を通知する(ステップS225)。
つぎに、キーボード入出力の制御動作について図27のフローチャートを参照し説明する。まず、全キーボードデータを入力し、キーボードデータスを監視し(ステップS231)、キーボードデータ数を0とし(ステップS232)、終了通知であるか否かを判断する(ステップS233)。「終了」ボタン、「会議終了パケット」によるPC会議終了通知を監視、終了する。終了通知でなければ、キーボードデータの入力有無を判断し(ステップS234)、キーボードデータの入力があれば、さらに操作権有りであるか否かを判断する(ステップS235)。ここで、操作権がない場合キーボード入力データを破棄する。一方、操作権有りであれば、さらにファイルパス取得中であるか否かを判断する(ステップS236)。ここで、ファイルパス取得中におけるキーボード入力は他端末へ送信しない。一方、ファイルパス取得中でなければ、キーボードデータを保存し(ステップS237)、キーボードデータをAPLへ渡し再生する(ステップS238)。続いて、キーボードデータ数を1つ進め(ステップS239)、キーボードデータ数が特定長(K)であるか否かを判断する(ステップS240)。ここで、キーボードデータ数が特定長(K)であれば、キーボード入力データは特定長(K)に区切り「キーボードデータパケット」により送信し(ステップS241)、キーボードデータ数を0にし(ステップS242)、キーボード入力監視タイマをスタートさせる(ステップS243)。一方、ステップS240においてキーボードデータ数が特定長(K)でなければ、さらにキーボード入力タイムアウトであるか否かを判断する(ステップS244)。特定時間キーボード入力がない場合、保存データを送信する。ここで、キーボード入力タイムアウトであれば、キーボード入力監視タイマを停止し(ステップS245)、キーボードデータブロック数>0であるか否かを判断し(ステップS246)、キーボードデータブロック数>0であれば、キーボードデータ数を0にし(ステップS247)、キーボードデータパケットを送信する(ステップS248)。
つぎに、音声データ入出力の制御動作について図28のフローチャートを参照し説明する。まず、音声データブロック数を0にし(ステップS251)、終了通知であるか否かを判断し(ステップS252),終了通知であれば、音声データの入力であるか否かを判断する(ステップS253)。「終了」ボタン、「会議終了パケット」によるPC会議終了通知を監視、終了する。ここで、音声データの入力であれば、音声データを保存し(ステップS254)、マイクより入力された音声データをスピーカへ出力し(ステップS255)、音声データブロック数を一つ進める(ステップS256)。続いて、音声データブロック数が特定長(S)であるか否かを判断し(ステップS257)、音声データブロック数が特定長(S)であれば、音声データは特定長(S)に区切り「音声データパケット」により送信する(ステップS258)。特定時間音声データ入力がない場合保存データを送信する。続いて、音声データブロック数を0にし(ステップS259)、音声入力監視タイマをスタートさせる(ステップS260)。ステップS253において音声データの入力がなければ、音声入力タイムアウトであるか否かを判断する(ステップS261)。音声入力タイムアウトであれば、音声入力監視タイマを停止し(ステップS262)、音声データブロック数>0であるか否かを判断する(ステップS263)。ここで、音声データブロック数>0であれば、音声データブロック数を0にし(ステップS264)、音声データパケットを送信する(ステップS265)。
つぎに、PC会議パケットデータの送信制御動作について図29のフローチャートを参照し説明する。PC会議開始制御、マウスデータ入出力制御、キーボードデータ入出力制御、音声データ入出力制御により作成された送信パケットデータが入力値として渡される。まず、操作権パケットであるか否かを判断する(ステップS271)。操作権パケットでなければ、さらに会議開始パケットであるか否かを判断する(ステップS272)。パケット番号が「0」である制御パケットとしてPC会議ファイル保存しない。会議開始パケットである場合、会議開始パケットにより「PC会議ファイル」を作成する(ステップS273)。さらに、PC会議年月日、PC会議時分秒を保存する(ステップS274、S275)。続いて、送信パケット番号をパケットデータ「パケット番号」へ設定し(ステップS276)、送信パケットをPC会議ファイルへ保存する(ステップS277)。さらに会議開始パケット送信時(PC会議時分秒)からの経過時間を操作時間に保存する(ステップS278)。送信パケット番号を1つ更新し(ステップS279)、PC会議パケットデータをネットワークを介してPC会議メンバへ送信する(ステップS280、S281)。
つぎに、PC会議パケットデータの受信制御動作について図30のフローチャートを参照し説明する。まず、終了通知であるか否かを判断する(ステップS291)。「終了」ボタン、「会議終了パケット」によるPC会議終了通知を監視、終了する。終了通知でなければ、さらにパケットデータ送信であるか否かを判断し(ステップS292)、パケットデータ送信であれば、さらに操作権パケットであるか否かを判断する(ステップS293)。ここで操作権パケットでなければ、さらにパケット番号が受信パケット番号であるかを判断する(ステップS294)。操作権パケットである場合パケット受信順に関係なく処理する。パケット番号が受信パケット番号でない場合、処理せず一時保存する(ステップS295)。ステップS293において操作権パケットである場合、さらに会議開始パケットであるか否かを判断し(ステップS296)、会議開始パケットである場合、「会議開始パケット」受信により「PC会議ファイル」を作成する(ステップS297)。受信パケットデータをPC会議ファイルへ保存する。さらに、PC会議年月日、PC会議時分秒を保存する(ステップS298、S299)。続いて、操作権パケットであるか否かを判断し(ステップS300)、操作権パケットでなければ、その受信パケットデータファイルを保存し(ステップS301)、受信パケット番号を1つ更新する(ステップS302)。続いて、パケット受信制御を実行する(ステップS303)。その後、一時保存のパケットの有無を判断し(ステップS304)、一時保存のパケットがあれば、保存パケットが受信パケット番号であるか否かを判断し(ステップS305)、保存パケットが受信パケット番号である場合処理する。
つぎに、PC会議パケットの実行制御動作について図31のフローチャートを参照し説明する。受信したパケットデータが入力値として渡され、そのパケットデータを判断し、所定の制御を実行する。すなわち、まず、会議開始パケットであるか否かを判断し(ステップS311)、会議開始パケットであれば、「会議開始パケット」受信によりPC会議開始ダイアログボックスを表示し(ステップS312)、PC会議開始ツールバーからPC会議ツールバーへ表示変更する(ステップS313)。一方、ステップS211において会議開始パケットでなければ、さらに画面情報パケットであるか否かを判断し(ステップS314)、画面情報パケットであれば、「画面情報パケット」受信により画面の色数、領域を設定する(ステップS315)。ステップS314において画面情報パケットでなければ、さらにプログラム起動パケットであるか否かを判断し(ステップS316)、プログラム起動パケットであれば、「プログラム起動パケット」受信によりプログラム起動パケット受信制御を実行する(ステップS317)。ステップS316においてプログラム起動パケットでなければ、さらにマウスデータパケットであるか否かを判断し(ステップS318)、マウスデータパケットであれば、「マウスデータパケット」受信によりマウスデータをAPLへ渡す(ステップS319)。ステップS318においてマウスデータパケットでなければ、さらにキーボードデータパケットであるか否かを判断し(ステップS320)、キーボードデータパケットであれば、「キーボードデータパケット」受信によりキーボードデータをAPLへ渡す(ステップS321)。ステップS320においてキーボードデータパケットでなければ、さらに音声データパケットであるか否かを判断し(ステップS322)、音声データパケットであれば、「音声データパケット」受信によりスピーカーへ出力する(ステップS323)。ステップS322において音声データパケットでなければ、さらにウィンドウ情報パケットであるか否かを判断し(ステップS324)、ウィンドウ情報パケットであれば「ウィンドウ情報パケット」受信によりウィンドウ情報パケット受信制御を実行する(ステップS325)。ステップS325においてウィンドウ情報パケットでなければ、さらにファイル入力パケットであるか否かを判断し(ステップS326)、ファイル入力パケットであれば、「ファイル入力パケット」受信によりファイル入力パケット受信制御を実行する(ステップS327)。ステップS326においてファイル入力パケットでなければ、さらに操作権パケットであるか否かを判断し(ステップS328)、操作権パケットであれば、「操作権パケット」受信により操作権パケット受信制御を実行する(ステップS329)。ステップS328において操作権パケットでなければ、さらに会議終了パケットであるか否かを判断し(ステップS330)、会議終了パケットであれば「会議終了」パケットによりPC会議終了を通知する(ステップS331)。
つぎに、プログラム起動パケットの受信制御動作について図32のフローチャートを参照し説明する。プログラム起動パケットデータが入力値として渡される。まず、起動するAPLプログラムを検索し(ステップS341)、プログラムの有無を判断する(ステップS342)。ここで、プログラムが検索できない場合「プログラム検索ダイアログボックス」を表示する(ステップS343)。一方、プログラムが検索されたならば、さらにAPLファイル付きであるか否かを判断し(ステップS344)、APLファイル付きであれば、APLファイル付きである場合、APLファイルを作業領域に作成して保存し(ステップS345)、作成したAPLファイルパスによりプログラムを起動する(ステップS346)。ステップS344においてAPLファイル付きでなけければ、当該プログラムを起動する(ステップS347)。
つぎに、ウィンドウ情報パケットの受信制御動作について図33のフローチャートを参照し説明する。ウィンドウ情報パケットデータが入力値として渡される。まず、表示中の全ウィンドウ情報を取得し(ステップS351)、ウィンドウ表示であるか否かを判断し(ステップS352)、ウィンドウ表示であれば、ウィンドウ表示である表示中ウィンドウに表示ウィンドウが存在するのを確認する(ステップS353)。ステップS352においてウィンドウ表示でなければ、さらにウィンドウ消去であるか否かを判断し(ステップS354)、ウィンドウ消去であれば、さらに表示中である否かを判断する(ステップS355)。ステップS354においてウィンドウ消去でなければ、さらにウィンドウ移動であるか否かを判断し(ステップS356)、ウィンドウ移動であれば、ウィンドウ消去である表示中ウィンドウに消去ウィンドウがないのを確認する(ステップS357)。ここで、表示中であれば、ウィンドウを左上原点座標、幅、高さに表示変更する(ステップS358)。
つぎに、ファイル入力パケットの受信制御動作について図34のフローチャートを参照し説明する。ファイル入力パケットデータが入力値として渡される。まず、APLファイルを作業領域に作成、受信ファイルを保存し(ステップS361)、表示中の全ウィンドウ情報を取得する(ステップS362)。さらにファイル名入力ウィンドウを検索、ウィンドウ左上原点座標、幅、高さを取得し(ステップS363)、ファイル入力ウィンドウ内マウスデータ(ボタンON)、マウスデータ(ボタンOFF)を作成再生する(ステップS364)。続いて、入力したファイルパスをAPL共通参照領域(クリップボード)へコピーし(ステップS365)、ファイル名入力ウィンドウへファイルパスを表示(Contol+V)、入力(Enter)する(ステップS366)。
つぎに、操作権パケットの受信制御動作について図35のフローチャートを参照し説明する。操作権パケットデータが入力値として渡される。まず、操作権の要求有無を判断し(ステップS371)、操作権の要求があれば、PC会議主催端末が操作権要求パケットを受信、操作権要求ダイアログボックスを表示する(ステップS372)。許可ボタンによる許可の有無を判断し(ステップS373)、許可であれば、「許可」ボタンにより操作権移動パケットを全PC会議参加端末へ送信する(ステップS374)。ステップS373において許可でなければ、さらに却下ボタンによる却下の有無を判断し(ステップS375)、却下であれば、「却下」ボタンにより操作権要求端末へ操作権却下パケットを送信する(ステップS376)。ステップS371において操作権の要求でなければ、さらに操作権開放であるか否かを判断し(ステップS377)、操権開放であれば、操作権を持っていた端末からの操作権開放パケットにより操作権要求端末作へ「送信パケット番号」を設定、操作権許可パケットを操作権要求端末へ送信する(ステップS378)。ステップS377において操権開放でなければ、さらに操作権許可であるかを判断し(ステップS379)、操作権許可であれば、操作権許可パケット受信により操作権許可ダイアログボックスを表示する(ステップS380)。操作権許可パケットの「送信パケット番号」を設定し保存する(ステップS381)。さらに、操作権の移動に伴い会議メンバテーブルを更新する(ステップS382)。ステップS379において操作権許可でなければ、さらに操作権却下であるか否かを判断し(ステップS383)、操作権却下であれば、操作権却下パケット受信により「操作権」ボタンを通常表示へ戻す(ステップS384)。さらに操作権却下ダイアログボックスを表示する(ステップS385)。ステップS383において操作権却下でなければ、さらに操作権移動であるか否かを判断し(ステップS386)、操作権移動であれば、操作権移動パケット受信により操作権移動ダイアログボックスを表示する(ステップS387)。続いて、操作権有りかを判断し(ステップS388)、操作権有りであれば、操作権がある端末は「操作権」ボタンを通常表示へ戻す(ステップS389)。さらに、操作権を移すため操作権開放パケットをPC会議主催端末へ送信し(ステップS390)、操作権の移動に伴い会議メンバテーブルを更新する(ステップS391)。
(第2の実施の形態)
この実施の形態は、電子会議中断時の会議の内容を参照あるいはPC会議へ復帰できるようにするものである。すなわち、この実施の形態では、以下の課題を解決する具体例について詳述するものである。PC会議途中で急用により抜けると会議の内容が判らなくなる場合がある。また、PC会議に関係なくPC操作が必要となる場合がある。この間のPC操作内容が実行されないためPC会議端末と画面内容が異なりPC会議に復帰してもマウスデータが操作端末の状態とは異なる環境で実行されることになり画面共有ができなくなる。また、PC会議の内容として画像データが保存される場合、データ量が膨大となり会議議事録としてネットワーク経由で配布するのに長時間と通信コストが必要となる。そこで本発明は会議データ量を小さくすることにより配布を容易にすることにより会議不参加者への周知、あるいは会議内容の確認を可能にするものである。
また、PC会議が正確に再現されないと内容の理解が困難となる場合がある。そこで、本発明は会議内容を実際の会議状態に再現する。また、PC操作内容を再現することにより画面を共有する場合、操作データが保存されていても逆に戻すにはAPLプログラムがこの機能を特別に持っていない限り不可能である。(たとえばツールバーを操作、ダイアログボックスを表示する場合、マウス操作により実行されるがこのマウスデータを逆に再生してもダイアログボックスは閉じない)そこで、本発明は中断時の状態を保持して中断時から再開できるようにする。また、会議内容を確認するため、あるいは再生中に急用で席を外すなどにより前に戻したい場合がある。この時、最初から再生(逆再生不可)すると時間の無駄となる。そこで本発明は高速に開始位置まで再生する。また、画面の表示内容と音声データが異なると内容の理解が困難となる場合がある。そこで、本発明は画面内容と音声を一致させる。また、PC会議の特定箇所を再現したい場合、コマ送りでは時間がかかりすぎ、早送り再生が早すぎると検索できないことになる。そこで、本発明は再現箇所の検索を容易にする。
この第2の実施の形態におけるシステム構成などは前述した図1〜図11と同様である。よって、ここでの重複説明は省略する。
図36−1,2は、本発明の第2の実施の形態にかかるPC会議主催端末操作における操作画面例を示す説明図である。この図を参照しPC会議主催端末操作について説明する。まず、PC会議制御プログラムはOSが提供するディスクトップアイコンのダブルクリックなどにより起動されPC会議開始ツールバーを表示する(図36−1上参照)。PC会議主催端末は「主催」ボタンにより会議を開始、「PC会議主催」ダイアログボックスを表示、「登録」ボタンにより「PC会議メンバ登録」ダイアログボックスを表示、「メンバ」ボタンにより「PC会議メンバ選択」ダイアログボックスを表示、PC会議メンバを選択する(図36−1中央参照)。「PC会議メンバ選択」ダイアログボックスにより、登録されている会議メンバリストから会議参加者を選択する(図36−1下参照)。名前をタッチ(クリック)主催者は「主催」ボタン、参加者は「参加」ボタンにより選択する。「PC会議メンバ登録」ダイアログボックスにより、会議メンバの「名前」、「所属」、「ネットワークアドレス」を登録、名前をタッチ「削除」ボタンにより登録情報を削除する。「開始」ボタンにより「会議開始パケット」、「画像情報パケット」を送信PC会議を開始する(図36−1中央参照)。会議主催端末は「終了」ボタンにより終了、PC会議ファイルを保存するか「PC会議保存」ダイアログボックスを表示する。
図37は、本発明の第2の実施の形態にかかるPC会議参加端末操作における操作画面例を示す説明図である。この図を参照し、PC会議参加端末操作について説明する。まず、PC会議参加端末はPC会議制御プログラムを起動、「参加」ボタンによりPC会議開始通知を待つ(図37上参照)。続いて、「会議開始パケット」を受信、PC会議開始メッセージを表示する(図37中央上参照)。「画面情報パケット」により画面をOSが提供するI/Fを介してPC会議主催端末と同様に設定する。PC会議資料を表示するAPLプログラムはPC会議主催端末から「プログラム起動パケット」によりプログラム名が通知される。各端末はPC内のプログラムを検索起動する(図37中央下参照)。プログラムが検索できない場合、「APL検索」ダイアログボックスを表示する。会議参加端末は「会議終了パケット」受信により終了、PC会議ファイルを保存するか「PC会議保存」ダイアログボックスを表示する(図37下参照)。
図38は、本発明の第2の実施の形態にかかるPC会議資料への上書きの操作画面を示す説明図である。この図を用いてPC会議資料への上書きについて説明する。まず、PC会議資料を表示するAPLプログラムとは別に上書きAPLプログラムを起動「プログラム起動パケット」を各受信端末へ送信する。上書きAPLは全画面サイズとなる透明ウィンドウを会議資料画面上に表示、手書きで図形、文字を説明する箇所の明示、補足説明のため描画する。「プログラム起動パケット」により受信端末に上書きAPLが起動される。手書き描画時のマウスドラッグ座標は「マウスデータパケット」により送信され、マウスデータとして上書きAPLに通知され操作端末と同様に図形、文字が描画される。
PC会議画面操作権取得例については前述の図15と同様であるのでここでの重複説明は省略する。
図39は、本発明の第2の実施の形態にかかるPC会議中断再開の操作画面を示す説明図である。この図を用いてPC会議中断再開方法について説明する。PC会議ツールバー「中断」ボタンによりPC会議から抜ける。PC会議で起動したAPLプログラムを最小化、マウスデータ、キーボードデータ監視(Hook)を終了、通常操作へ戻し「再開」ボタンを表示する。「再開」ボタンによりマウス、キーボードの監視を開始、最小化したAPLウィンドウを再表示する。「PC会議再生ツールバー」を表示する。スライダーバーにより会議開始からの操作時間を選択する。操作時間を微調整する。
図40は、本発明の第2の実施の形態にかかるPC会議再生の操作画面を示す説明図である。この図を用いてPC会議再生方法を説明する。PC会議再生プログラムは起動時、「PC会議ファイルを開く」ダイアログを表示、PC会議終了時保存したPC会議ファイルを入力する。PC会議ファイルのヘッダ、会議開始パケットデータから「PC会議再生」ダイアログを表示する。PC会議再生ツールバーを表示する。機能についてはPC会議中断再生と同様である。
図41は、本発明の第2の実施の形態にかかるPC会議制御プログラムの構成を示す説明図である。この図において、マウスデータ入出力制御、キーボードデータ入出力制御、音声データ入出力制御、PC会議パケット受信制御は独立して動作する。PC会議制御プログラム201は、PC会議制御を初期化しPC会議を開始する「PC会議開始制御」205、マウスデータの入力出力、ツールバーを制御する「マウスデータ入出力制御」2006。キーボードデータ入出力を制御する「キーボードデータ入出力制御」207、音声データを入出力する「音声データ入出力制御」208、操作権端末においてPC操作のパケットデータを送信する「PC会議パケット送信制御」209、操作権端末からパケットデータを受信、出力する「PC会議パケット受信制御」210PC会議の中断、再開を制御する、「PC会議中断再開制御」211の各プログラムで構成される。
PC会議制御プログラムが入出力するファイルを示すディスク202には、APLプログラム毎の「ファイルを開く」ダイアログボックス情報を登録保存、ウィンドウ表示時参照する「ファイルオープンダイアログ登録ファイル」212、PC会議メンバとなる氏名、所属、ネットワークアドレスを登録保存、PC会議開始時参照する「PC会議メンバファイル」213、PC会議操により発生したパケットデータを操作権がある端末は送信時、操作権がない端末は受信時に保存、PC会議中断再生時に参照する「PC会議ファイル」214、PC会議により会議資料として表示するファイルを一時保存、PC会議終了時削除する「APLファイル」215の各ファイルがある。
PC会議制御プログラム群により共有される共通参照領域203上のデータを示す。主催端末は会議メンバ選択時、参加端末は会議開始パケット受信時に設定する「会議メンバーテーブル」216、現在表示されているウィンドウ情報を取得保存する「ウィンドウ情報テーブル」217、操作により発生したパケットデータに設定、カウントアップする「送信パケット番号」218、受信したパケット番号が同一である場合カウントアップする「受信パケット番号」219、会議中、中断いずれかに設定される「会議ステータス」220、有効、無効に設定され無効時送信しない「キー入力ステータス」221、最後にPC会議ファイルへ保存したPC会議パケットデータへのポインタが設定される「PC会議パケットポインタ」222が用意されている。
OS API204は、OSが提供するAPIの中でPC会議制御上特に必要となる機能を示す。「ウィンドウ監視表示」225は、画面に表示されているウィンドウの表示位置(Zオーダー(重なり順)、左上原点座標、幅、高さ)、ウィンドウ識別情報(ウィンドウキャプション、クラス、スタイル)を取得する。また、Zオーダー、位置、幅、高さを指定してウィンドウを表示する。「プログラム起動監視」226は、デスクトップ上のダブルクリック、タスクバーから起動されたプログラムのファイルパスを取得する。「画面情報」227は、画面の色数(256色等)、領域(1024x768等)を取得する。画面の色数、領域を設定する。「マウスデータ監視再生」228は、マウス操作による入力を全て受け取る。また、再生、APLへ渡す。「キーボードデータ監視再生」229は、キーボード入力により入力を全て受け取る。また、再生、APLへ渡す。「入力ファイル監視」230は、「ファイルを開く」ダイアログにより入力するファイルパスを取得する。
図42は、本発明の第2の実施の形態にかかるPC会議再生制御の構成を示す説明図である。この図においてPC会議再生制御を説明する。PC会議再生制御プログラム231は、PC会議再生制御を初期化、PC会議ファイルを読み込みPC会議再生を開始する「PC会議再生開始制御」235、PC会議再生ツールバーを制御、PC会議パケットデータをOS APIを介して再生する「PC会議再生制御」236を有する。PC会議ファイル232は、PC会議時の操作データがパケット単位に保存されている。また、共通参照領域233は、PC会議再生制御プログラム群により共有されるデータを示し、停止、通常再生、早送りのいずれかが設定される「再生モード」237、再生対象となるPC会議ファイルポインタが設定される「PC会議再生パケットポインタ」238を有している。
また、OSが提供するAPIの中でPC会議再生制御上特に必要となる機能を示す。OS API234は、画面に表示されているウィンドウの表示位置(Zオーダー(重なり順)、左上原点座標、幅、高さ)、ウィンドウ識別情報(ウィンドウキャプション、クラス、スタイル)を取得し、また、Zオーダー、位置、幅、高さを指定してウィンドウを表示する「ウィンドウ監視表示」239、画面の色数(256色等)、領域(1024x768等)を設定する「画面情報」240、マウス操作による入力を全て受け取り破棄、マウスパケットデータを再生する「マウスデータ監視再生」241、キーボード入力により入力を全て受け取り破棄し、キーボードパケットデータを再生する「キーボードデータ監視再生」242を有する。
つぎに、PC会議開始の制御動作について図43のフローチャートを参照し説明する。まず、PC会議制御プログラムはディスクトップアイコンのダブルクリックなどOSが提供する手段により起動されPC会議開始ツールバーを表示し(ステップS401)、マウスからの入力有無を判断する(ステップS402)。すなわち、PC会議ツールバーへのタッチ(クリック)があると通知される。マウスによる入力があれば、続いて、「主催」ボタンへのタッチ有無を判断する(ステップS403)。ここで「主催」ボタンへのタッチがあれば、「主催」ボタンへのタッチでPC会議メンバを設定してPC会議を開始する(ステップS404、S405)。続いて、PC会議開始ツールバーに変えてPC会議ツールバーを表示し(ステップS406)、当該会議を主催とし(ステップS407)、操作権有りとする(ステップS408)。ステップS403において「主催」ボタンへのタッチがなければ、さらに「参加」ボタンへのタッチ有無を判断する(ステップS409)。すなわち、「参加」ボタンによりPC会議を開始、PC会議主催端末からの会議開始パケットを待つ。ここで「参加」ボタンへのタッチがあると、当該会議を参加とし(ステップS410)、操作権なしとする(ステップS411)。続いて、受信パケット番号を初期化し(ステップS412)、送信パケット番号を初期化する(ステップS413)。さらに会議ステータスを会議中とし(ステップS414)、キー入力ステータスを有効とする(ステップS415)。続いて、マウスデータ入出力制御を開始し(ステップS416)キーボードデータ入出力制御を開始し(ステップS417)、さらに音声データ入出力制御を開始し(ステップS418)、PC会議パケットデータ受信を開始する(ステップS419)。続いて、当該会議が主催であるか否かを判断し(ステップS420)、主催であれば、PC会議主催制御を実行する(ステップS421)。続いて、当該会議が終了であるか否かを判断し(ステップS422)、終了であれば、「終了」ボタン、「会議終了パケット」受信によるPC会議終了通知により終了する。さらに会議資料として他PCから送信されたAPLファイルを削除し(ステップS423)、PC会議ツールバーを消去し(ステップS424)、PC会議保存ダイアログボックスを表示、PC会議ファイルを保存する(ステップS425)。
つぎに、PC会議メンバ設定の制御動作について図44のフローチャートを参照し説明する。まず、「PC会議主催ダイアログボックス」を表示し(ステップS431)、マウスからの入力有無を判断する(ステップS432)。すなわち、PC会議ダイアログボックスへのタッチがあると通知される。さらに「会議名」入力であるか否かを判断し(ステップS433)、「会議名」入力であれば、「会議名」ボタンにより会議名を入力、会議メンバテーブルに設定する(ステップS434)。ステップS433において「会議名」入力でなければ、さらに「メンバ」ボタンへのタッチ有無を判断し(ステップS435)、「メンバ」ボタンへのタッチがあれば、「メンバ」ボタンにより「PC会議メンバ選択ダイアログボックス」を表示、PC会議メンバを選択する(ステップS436)。続いて、PC会議メンバ選択のダイアログ処理を行ない(ステップS437)、選択した会議メンバと主催者を会議メンバテーブルへ設定する(ステップS438)。設定後、PC会議メンバ選択ダイアログを消去する(ステップS439)。ステップS435において「メンバ」ボタンへのタッチでなけば、「登録」ボタンへのタッチ有無を判断する(ステップS440)。「登録」ボタンへのタッチがあると、「登録」ボタンにより「PC会議メンバ登録ダイアログボックス」を表示し(ステップS441)、PC会議メンバとなる氏名、所属、ネットワークアドレスを会議メンバ登録ファイルへ登録し(ステップS442)、あるいは削除する(ステップS443)。ステップS440において「登録」ボタンへのタッチがなければ、さらに「キャンセル」ボタンへのタッチ有無を判断する(ステップS444)。ここで「キャンセル」ボタンがあれば、PC会議主催ダイアログを消去する(ステップS445)。ステップS444において「キャンセル」ボタンへのタッチがなければ、さらに「開始」ボタンへのタッチ有無を判断する(ステップS446)。ここで「開始」ボタンへのタッチがあれば、「開始」ボタンによりPC会議を開始し、その後、PC会議主催ダイアログを消去する(ステップS447)。
この第2の実施の形態におけるPC会議主催の制御動作は、前述した図19のフローチャートと同様であるのでその説明を省略する。また、ファイルオープンダイアログ登録の制御動作についても前述した図20のフローチャートと同様であるのでその説明を省略する。
つぎに、マウスデータ入出力の制御動作について図45のフローチャートを参照し説明する。まず、全マウスデータを入力し(ステップS451)、終了通知であるか否かを判断する(ステップS452)。ここで終了通知であれば、マウスデータ監視を終了する(ステップS453)。すなわち、「終了」ボタン、「会議終了パケット」受信によるPC会議終了通知により終了する。一方、終了の通知がなければ、さらにマウスデータの入力有無を判断し(ステップS454)、マウスデータの入力があると判断した場合、マウス座標のウィンドウ情報を取得する(ステップS455)。続いて、PC会議ツールバー座標であるか否かを判断し(ステップS456)、PC会議ツールバー座標である場合、「PC会議ツールバー制御」を実行する(ステップS457)。ステップS456においてPC会議ツールバー座標ではない場合、さらに操作権有りであるか否かを判断する(ステップS458)。すなわち、操作権が無いPC端末はPC会議ツールバー」操作のみ可能とする。操作権有りである場合、デスクトップウィンドウ座標であるか否かを判断する(ステップS459)。ここで標であれば、デスクトップウィンドウ座標(APLが表示するウィンドウ外)である場合「デスクトップ制御」を実行する(ステップS460)。ステップS459においてデスクトップウィンドウ座標でなければ、さらにタスクバー座標であるか否かを判断する(ステップS461)。タスクバー座標であれば、タスクバーウィンドウ座標である場合「タスクバー制御」を実行する(ステップS462)。ステップS461においてタスクバー座標でなければ、さらにAPLウィンドウであるか否かを判断し(ステップS463)、APLウィンドウであれば、APLへのマウス操作である場合「APLマウス操作制御」を実行する(ステップS464)。
つぎに、PC会議ツールバーの制御動作について図46のフローチャートを参照し説明する。タッチ時のマウスデータが入力値として渡される。まず、現在のボタン表示情報を保存し(ステップS471)、マウスデータ入力の有無を判断し(ステップS472)、マウスデータの入力があれば、タッチ座標ボタンを選択表示する。(ステップS473)。すなわち、タッチボタン変更がある場合、選択表示ボタンを通常表示へ戻し、ボタン上座標である場合、ボタンを選択表示する。続いて、ボタンOFFであるか否かを判断し(ステップS474)、ボタンOFFであれば、さらにPC会議ツールバー座標であるか否かを判断する(ステップS475)。ここで、PC会議ツールバー座標でなければ、ボタンOFF時の座標がPC会議ツールバー上で無い場合、ステップS471の保存の表示状態へ戻す(ステップS476)。ステップS475においてPC会議ツールバー座標である場合、「終了」ボタンへのタッチであるか否かを判断し(ステップS477)、「終了」ボタンへのタッチであれば、さらに会議主催端末であるか否かを判断する(ステップS478)。ここで会議主催端末でなければ、「終了」ボタンの通常表示を行なう(ステップS479)。ステップS478において会議主催端末であれば、会議主催端末は「終了」ボタンにより参加端末へ「会議終了パケット」を送信し(ステップS480)、全制御プログラムへ終了を通知する(ステップS481)。ステップS477において「終了」ボタンへのタッチでなければ、さらに「中断」ボタンへのタッチであるか否かを判断する(ステップS482)。ここで「中断」ボタンへのタッチであれば、PC会議ツールバーを消去し(ステップS483)、「中断」ボタンによりPC会議中断再生制御を実行し(ステップS484)、PC会議ツールバーを表示する(ステップS485)。ステップS482において「中断」ボタンでなければ、さらに「操作権」ボタンへのタッチであるか否かを判断する(ステップS486)。ここで「操作権」ボタンへのタッチであれば、さらに操作権有りであるか否かを判断し(ステップS487)、「操作権」ボタンへのタッチでなければ、さらにPC会議主催であるか否かを判断する(ステップS488)。ここでPC会議主催であれば、「操作権」ボタンによりPC会議主催端末は各端末へ操作権を奪ったことを「操作権パケット(移動)」により通知する(ステップS489)。一方、PC会議主催でなければ、「操作権」ボタンによりPC会議参加端末は主催端末へ「操作権パケット(要求)」により操作権を要求する(ステップS490)。
この第2の実施の形態におけるデスクトップの制御動作は前述した図23のフローチャートと同様であるのでここでの説明を省略する。また、この第2の実施の形態におけるタスクバーの制御動作は前述した図24のフローチャートと同様であるのでここでの説明を省略する。
つぎに、APLマウス操作の制御動作について図47のフローチャートを参照し説明する。タッチ時のマウスデータが入力値として渡される。まず、ウィンドウ監視制御を実行する(ステップS491)。続いて、ファイル入力の有無を判断する(ステップS492)。ファイルオープンダイアログボックスへのマウス操作は他端末へマウスデータパケット送信はしない。ファイル入力がなければ、タッチ座標マウスデータを保存し(ステップS493)、APLへマウスデータを渡し再生する(ステップS494)。さらにマウスデータブロック数を1とし(ステップS495)、マウスデータ入力の有無を判断する(ステップS496)。ここでマウスデータの入力があれば、ウィンドウ監視制御を実行し(ステップS497)、マウスデータを保存して(ステップS498)、マウスデータを再生し(ステップS499)、マウスデータ数を一つ進ませる(ステップS500)。続いて、マウスデータ数が特定サイズ(N)であるか否かを判断し(ステップS501)、マウスデータ数がNであれば、特定サイズ(N)単位に区切り「マウスデータパケット」を送信し(ステップS502)、マウスデータブロック数を0にする(ステップS503)。続いて、ボタンOFFであるか否かを判断し(ステップS504)、ボタンOFFであれば、さらにマウスデータブロック数が0より大きいか否かを判断する(ステップS505)。ここでマウスデータブロック数が0より大きければ、ボタンON(タッチ)からボタンOFF(デタッチ)までを1単位に制御する(ステップS506)。
つぎに、ウィンドウ監視の制御動作について図48のフローチャートを参照し説明する。まず、表示中の全ウィンドウ情報を取得する(ステップS511)。続いて、ウィンドウ情報テーブルに存在しないウィンドウが表示されている場合、新ウィンドウ表示と判定する(ステップS512)。新ウィンドウの表示である場合、さらにファイルオープンダイアログであるか否かを判断し(ステップS513)、ファイルオープンダイアログであれば、新表示されたウィンドウがファイルオープンダイアログ登録ファイルに登録されているウィンドウである場合、ファイルパス入力制御を実行する(ステップS514)。ステップS513においてファイルオープンダイアログでなければ、ファイルオープンダイアログ以外のウィンドウ表示である場合、「ウィンドウ情報(表示)パケット」を送信する(ステップS515)。続いて、ウィンドウ消去であるか否かを判断し(ステップS516)、ウィンドウ消去であれば、ウィンドウが消去された場合「ウィンドウ情報(消去)パケット」を送信し(ステップS517)、取得したウィンドウ情報をウィンドウ情報テーブルに設定する(ステップS518)。
この第2の実施の形態におけるファイルパス取得の制御動作は、前述した図26のフローチャートと同様であるのでここでの説明を省略する。
つぎに、キーボード入出力の制御動作について図49のフローチャートを参照し説明する。まず、全キーボードデータを入力し、データを監視(Hook)し(ステップS521)、キーボードデータ数を0とし(ステップS522)、終了通知であるか否かを判断する(ステップS523)。終了通知であれば、キーボードデーダに監視を中止する(ステップS540)。「終了」ボタン、「会議終了パケット」によるPC会議終了通知を監視、終了する。終了通知でなければ、キーボードデータの入力有無を判断し(ステップS524)、キーボードデータの入力があれば、さらに操作権有りであるか否かを判断する(ステップS525)。ここで、操作権がない場合キーボード入力データを破棄する。一方、操作権有りであれば、キー入力ステータスが有効であるか否かを判断する(ステップS526)。ここでキー入力ステータスが「有効」でない場合キーボードデータパケットを送信せずAPL通知のみとする(ステップS527)。一方、キー入力ステータスが「有効」である場合、キーボードデータを保存し(ステップS528)、キーボードデータをAPLへ渡す(ステップS529)。続いて、キーボードデータ数を1つ進め(ステップS530)、キーボードデータ数が特定長(K)であるか否かを判断する(ステップS531)。ここで、キーボードデータ数が特定長(K)であれば、キーボード入力データは特定長(K)に区切り「キーボードデータパケット」により送信し(ステップS532)、キーボードデータ数を0にし(ステップS533)、キーボード入力監視タイマをスタートさせる(ステップS534)。一方、ステップS531においてキーボードデータ数が特定長(K)でなければ、さらにキーボード入力タイムアウトであるか否かを判断する(ステップS535)。特定時間キーボード入力がない場合、保存データを送信する。ここで、キーボード入力タイムアウトであれば、キーボード入力監視タイマを停止し(ステップS536)、キーボードデータブロック数>0であるか否かを判断し(ステップS537)、キーボードデータブロック数>0であれば、キーボードデータパケットを送信し(ステップS538)、キーボードデータ数を0にして(ステップS539)、ステップS523に戻る。
つぎに、音声データ入出力の制御動作について図50のフローチャートを参照し説明する。まず、音声入力ステータスを「無し」とし(ステップS541)、音声ブロック数を0にする(ステップS542)。続いて、終了の通知有無を判断し(ステップS543)、ここで「終了」ボタン、「会議終了パケット」によるPC会議終了通知により終了する場合、さらに音声データの入力有無を判断する(ステップS544).ここで音声データの入力があれば、マイクより入力された音声データを保存し(ステップS545)、スピーカへ出力し(ステップS546)、音声データブロック数を一つインクリメントする(ステップS547)。続いて、音声データブロック数が特定長(S)であるか否かを判断し(ステップS548)、特定長(S)であれば、さらに音声入力ステータスが「無し」であるか否かを判断する(ステップS549)。ここで音声入力ステータスが「無し」であれば、音声入力ステータスを「入力中」とする(ステップS550)。音声データが特定時間入力されず再開したとき、音声データパケットの音声データ制御コードを「開始」に設定する(ステップS551)。一方、ステップS549において音声入力ステータスが「無し」でなければ、つまり、音声データが入力中であるとき、音声データ制御コードを「継続」に設定し(ステップS552)、音声データは特定長(S)に区切り「音声データパケット」により送信する(ステップS553)。さらに音声データブロック数を0にし(ステップS554)、音声入力監視タイマをスタートさせる(ステップS555)。ステップS544において音声データの入力がなければ、さらに音声入力のタイムアウトを判断する(ステップS556)。タイムアウトとであれば、音声入力監視タイマを停止し(ステップS557)、音声データブロック数>0であるかを判断する(ステップS558)。ここで音声データの入力が無い場合、音声データサイズ「0」の音声データパケットを作成する(ステップS559)。さらに音声データ入力終了時、音声データ制御コードを「終了」に設定し(ステップS560)、音声データのパケット送信を実行する(ステップS561)。
つぎに、PC会議パケットデータ送信の制御動作について図51のフローチャートを参照し説明する。PC会議開始制御、マウスデータ入出力制御、キーボードデータ入出力制御、音声データ入出力制御により作成された送信パケットデータが入力値として渡される。まず、操作権パケットであるか否かを判断し(ステップS571)、操作権パケットでなければ、さらに会議開始パケットであるか否かを判断する(ステップS572)。なお、操作権パケットはPC会議ファイルに保存しない。会議開始パケットであれば、PC会議ファイルを作成し(ステップS573)、現在の年月日時分秒を保存し(ステップS574)、次パケットデータポインタ「0」、操作時間「0」、会議開始パケットによりPC会議パケットデータを作成、PC会議ファイルへ保存し(ステップS575)、「PC会議パケットポインタ」を「12」に設定する(ステップS576)。さらに、1秒単位にカウントアップするPC会議タイマーをスタートする(ステップS577)。ステップS572において会議開始パケットでなければ、次パケットデータポインタ「0」、操作時間「PC会議タイマー値」、送信パケットによりPC会議パケットデータを作成する(ステップS578)。さらにPC会議ファイル「PC会議パケットポインタ」の「次パケットデータポインタ」を設定、次パケットデータポインタへPC会議パケットデータを保存する(ステップS579)。次パケットデータポインタ = PC会議パケットポインタ+パケットサイズ+「8」である。続いて、「PC会議パケットポインタ」をステップS579で算出した次パケットデータポインタに設定する(ステップS580)。さらに「送信パケット番号」を送信パケット「パケット番号」に設定し(ステップS581)、送信パケット番号を1つ進め(ステップS582)、他のPC会議端末へパケットデータを送信する(ステップS583)。その後、全PC端末に送信した否かを判断し(ステップS584)、全PC端末に送信するまでパケットデータの送信を行なう。
つぎに、PC会議パケットデータ受信の制御動作について図52のフローチャートを参照し説明する。まず、終了通知であるか否かを判断する(ステップS601)。「終了」ボタン、「会議終了パケット」によるPC会議終了通知により終了する。ここで、終了通知でなければ、さらにパケットデータ受信であるか否かを判断する(ステップS602)。ここでパケットデータの受信であれば、さらに操作件パケットであるか否かを判断する(ステップS603)。操作権パケットでなければ、パケット番号が受信パケット番号であるか否かを判断する(ステップS604)。ここで受信パケット番号でなければ、受信パケットデータを一時保存する(ステップS605)。すなわち、操作権パケットはパケット受信順に関係なく処理する。また、パケット番号が受信パケット番号でない場合処理せず一時保存する。続いて、操作権パケットであるか否を判断し(ステップS606)、操作権パケットでなければ、さらにそのパケットが会議開始パケットであるか否かを判断する(ステップS607)。なお、操作権パケットはPC会議ファイル保存しない。ここで会議開始パケットであれば、PC会議ファイルを作成し(ステップS608)、PC会議年月日時分秒を保存する(ステップS609)。続いて、PC会議ファイルを作成、現在の年月日時分秒を保存、次パケットデータポインタ「0」、操作時間「0」、会議開始パケットによりPC会議パケットデータを作成、PC会議ファイルへ保存する(ステップS610)。さらに「PC会議パケットポインタ」を「12」に設定する(ステップS611)。そして、1秒単位にカウントアップするPC会議タイマーをスタートする(ステップS612)。ステップS607において会議開始パケットでなければ、次パケットデータポインタ「0」、操作時間「PC会議タイマー値」、受信パケットによりPC会議パケットデータを作成する(ステップS613)。さらに、PC会議ファイル「PC会議パケットポインタ」の「次パケットデータポインタ」を設定、次パケットデータポインタへPC会議パケットデータを保存する(ステップS614)。次パケットデータポインタ = PC会議パケットポインタ+パケットサイズ+「8」とする。ついで「PC会議パケットポインタ」をステップS614で算出した次パケットデータポインタに設定する(ステップS615)。次に処理するパケット番号を更新し(ステップS616)、PC会議パケット実行制御を実行する(ステップS617)。一時保存パケットの実行であるか否かを判断し(ステップS618)、一時保存パケットの中にパケット番号が「受信パケット番号」に一致するものがあれば実行する。
つぎに、PC会議パケット実行の制御動作について図53のフローチャートを参照し説明する。受信したパケットデータが入力値として渡される。まず、会議ステータスが「中断」であるか否かを判断する(ステップS621)。ここで会議ステータスが「中断」でなければ、さらに会議開始パケットであるか否かを判断する(ステップS622)。会議ステータスが「中断」に設定されているとき受信パケットは実行しない。ステップS622において会議開始パケットであれば、「会議開始パケット」受信によりPC会議開始ダイアログボックスを表示し(ステップS623)、PC会議開始ツールバーからPC会議ツールバーへ表示変更する(ステップS624)。ステップS622において会議開始パケットでなければ、さらに画面情報パケットであるか否かを判断する(ステップS625)。ここで画面情報パケットであれば、「画面情報パケット」受信により画面の色数、領域を設定する(ステップS626)。ステップS622において会議開始パケットでなければ、さらにプログラム起動パケットであるか否かを判断する(ステップS627)。ここでプログラム起動パケットであれば、「プログラム起動パケット」受信によりプログラム起動パケット受信制御を実行する(ステップS628)。ステップS627においてプログラム起動パケットでなければ、さらにマウスデータパケットであるか否かを判断する(ステップS629)。ここでマウスデータパケットであれば、「マウスデータパケット」受信によりマウスデータをAPLへ渡す(ステップS630)。ステップS629においてマウスデータパケットでなければ、キーボードデータパケットであるか否かを判断する(ステップS631)。ここでキーボードデータパケットであれば、「キーボードデータパケット」受信によりキーボードデータをAPLへ渡す(ステップS632)。ステップS631においてキーボードデータパケットでなければ、さらに音声データパケットであるか否かを判断する(ステップS633)。ここで音声データパケットであれば、「音声データパケット」受信によりスピーカーへ出力する(ステップS634)。ステップS633において音声データパケットでなければ、ウィンドウ情報パケットであるか否かを判断する(ステップS635)。ここでウィンドウ情報パケットであれば、「ウィンドウ情報パケット」受信によりウィンドウ情報パケット受信制御を実行する(ステップS636)。ステップS635においてウィンドウ情報パケットでなければ、ファイル入力パケットであるか否かを判断する(ステップS637)。ここでファイル入力パケットであれば、「ファイル入力パケット」受信によりファイル入力パケット受信制御を実行する(ステップS638)。ステップS637においてファイル入力パケットでなければ、操作権パケットであるか否かを判断する(ステップS639)。ここで操作権パケットであれば、「操作権パケット」受信により操作権パケット受信制御を実行する(ステップS640)。ステップS639において操作権パケットでなければ、会議終了パケットであるか否かを判断する(ステップS641)。ここで会議終了パケットであれば、「会議終了」パケットによりPC会議終了を通知する(ステップS642)。
なお、プログラム起動パケット実行の制御動作については前述した図32のフローチャート、ウィンドウ情報パケット実行の制御動作については前述した図33のフローチャート、ファイル入力パケット実行の制御動作については前述した図34のフローチャート、操作権パケット実行の制御動作については前述した図35のフローチャートと同様であるので、ここでの説明は省略する。
つぎに、PC会議パケット再生の制御動作について図54のフローチャートを参照し説明する。まず、会議ステータスを「中断」に設定、「PC会議パケット実行制御」による受信パケットの実行を中止させ(ステップS651)、未実行であるパケット番号を保存する(ステップS652)。続いて、APLウィンドウを最小化し(ステップS653)、PC会議へ復帰する「再開」ボタンを表示する(ステップS654)。さらに、マウスデータ監視(Hook)を終了、通常操作へ戻し(ステップS655)、キーボードデータ監視(Hook)を終了、通常操作へ戻す(ステップS656)。そして、音声データ入力を終了する(ステップS657)。ついで、マウスデータの入力有無を判断する(ステップS658)。「再生」ボタンへのマウス操作のみ通知され他は実行中のAPLへ通知される。ここで、マウスデータの入力があると、再開ボタン選択を表示し(ステップS569)、このボタンOFFの有無を判断する(ステップS660)。ここで、ボタンOFFであれば、マウスデータを監視し(ステップS661)、キーボードデータを監視する(ステップS662)。さらに再開ボタンを消去し(ステップS663)、最小化したAPLウィンドウを再表示する(ステップS664)。続いて、「PC会議再生制御」を起動し(ステップS665)、PC会議ファイルからステップS652で保存したパケット番号のパケットデータを検索し(ステップS666)、PC会議再生パケットポインタへ設定する。このパケットから再生が実行されることになる。続いて、PC会議再生ツールバー制御を実行し(ステップS667)、その後、中断中に受信した全てのパケットを実行、現在の状態へ戻す(ステップS668)。続いて、再生通知を行ない(ステップS669)、再生完了であるか否かを判断し(ステップS670)、再生完了であれば、PC会議再生制御を終了させ、通知する(ステップS671)。その後、会議ステータスを「会議中」に設定し受信パケットの実行を再開させ(ステップS672)、音声入力を開始する(ステップS673)。
つぎに、PC会議パケット再生開始の制御動作について図55のフローチャートを参照し説明する。このPC会議再生制御プログラムはOSが提供する手段により起動される。まず、「PC会議ファイルを開く」ダイアログを表示、再生するPC会議ファイルを入力する(ステップS691)。その後、キャンセルの有無を判断し(ステップS692)、キャンセルがなければ、PC会議ファイルのヘッダ情報、会議開始パケット情報を「PC会議再生」ダイアログへ表示する(ステップS693)。その後、キャンセルの有無を判断し(ステップS694)、キャンセルがなければマウスデータを監視し(ステップS695)、キーボードデータを監視する(ステップS696)。続いて、PC会議ファイルから画面情報パケットを入力し、画面設定し(ステップS697)、「PC会議再生制御」を起動する(ステップS698)。さらにPC会議ファイルから画面情報パケットの「次パケットデータポインタ」を「PC会議再生パケットポインタ」へ設定する(ステップS699)。このパケットから再生が実行されることになる。続いて、PC会議再生ツールバー制御を実行し(ステップS700)、その後、PC会議再生制御を終了し、通知する(ステップS701)。さらに、マウスデータの監視を終了し(ステップS702)、キーボードの監視を終了する(ステップS703)。
つぎに、PC会議再生ツールバーの制御動作について図56−1、図56−2のフローチャートを参照し説明する。まず、PC会議再生ツールバーを表示し(ステップS711)、再生モードを停止に設定する(ステップS712)。その後、再生完了であるか否かを判断する(ステップS713)。ここで再生完了であれば、PC会議再生制御からの再生完了(PC会議ファイル終了)通知によりボタン(通常再生あるいは早送り再生)を通常表示へ戻し(ステップS714)、再生モードを停止に設定する(ステップS715)。続いて、マウス入力の有無を判断し(ステップS716)、マウス入力があれば、つまり、タッチ座標が選択表示中のボタン外である場合、通常表示へ戻しタッチ座標ボタンを選択表示する(ステップS717)。タッチ時(ボタンON時)のボタン表示情報を保存する。続いて、ボタンOFFの有無を判断し(ステップS718)、ボタンOFFであれば、さらにPC会議再生ツールバー座標であるかを判断する(ステップS719)。ここでデタッチ座標が(ボタンOFF)ツールバー外である場合、ステップS717で保存ボタン表示へ戻す(ステップS720)。ステップS719においてPC会議再生ツールバー座標であれば、さらに通常再生ボタンのタッチ有無を判断し(ステップS721)、通常再生ボタンであれば、さらに再生モードが通常再生に設定されているかを判断する(ステップS722)。ここで、通常再生に設定されていなければ、さらに再生モードが停止に設定されているかを判断し(ステップS723)、停止に設定されていなければ、PC会議再生制御へ早送り再生停止要求する(ステップS724)。ステップS723において再生モードが停止であれば、再生モードを通常再生に設定し(ステップS725)、再生の通知を行なう(ステップS726)。ステップS721において通常再生ボタンでなければ、さらに早送りボタンであるかを判断し(ステップS727)、早送りボタンであれば、さらに再生モードが早送りであるか否かを判断する(ステップS728)。ここで再生モードが早送りでなければ、さらに再生モードが停止に設定されているかを判断し(ステップS729)、停止に設定されていなければ、PC会議再生制御へ通常再生開始を要求する(ステップS730)。続いて、再生モードを早送りに設定し(ステップS731)、PC会議再生制御へ早送り再生開始要求する(ステップS732)。ステップS727において早送りボタンでなければ、さらに停止ボタンであるか否かを判断する(ステップS733)。ここで停止ボタンであれば、さらに再生モードが停止に設定されているか否かを判断し(ステップS734)、停止に設定されていれば、PC会議再生を停止し(ステップS735)、停止ボタンを通常の表示にする(ステップS736)。ステップS733において停止ボタンでなければ、さらにコマ送りボタンであるか否かを判断し(ステップS737)、コマ送りボタンであれば、さらに再生モードが停止に設定されているかを判断する(ステップS738)。再生モードが停止に設定されていなければ、停止の通知を行なう(ステップS739)。ステップS738において再生モードが停止に設定されていれば、あるいはステップS739を実行した後、PC会議コマ送り再生制御を実行し(ステップS740)、コマ送りボタンタを通常表示へ戻す(ステップS741)。ステップS737においてコマ送りボタンでなければ、さらに頭出しボタンであるか否かを判断する(ステップS742)。ここで頭出しボタンであれば、さらに再生モードが停止に設定されているかを判断し(ステップS743)、停止に設定されていなければ、停止の通知を行なう(ステップS744)。続いて、PC会議頭出し制御を実行し(ステップS745)、頭出しボタンの通常表示を行なう(ステップS746)。ステップS742において頭出しボタンでなければ、さらに終了ボタンであるかを判断し(ステップS747)、終了ボタンであれば、再生モードが停止に設定されているかを判断し(ステップS748)、再生モードが停止に設定されていなければ、停止の通知を行ない(ステップS749)、PC会議再生ツールバーを消去する(ステップS750)。
つぎに、PC会議再生の制御動作について図57のフローチャートを参照し説明する。このPC会議再生制御は「PC会議中断再生制御」、または「PC会議再生開始制御」により起動される。まず、「PC会議中断再生制御」、または「PC会議再生開始制御」からの終了通知により終了するかを判断する(ステップS751)。ここで終了でなければ、さらに、「PC会議中断再生制御」、または「PC会議再生開始制御」からの再生通知によりPC会議データの再生を開始するかを判断する(ステップS752)。さらにPC会議パケット終了であるか否かを判断する(ステップS753)。ここでPC会議パケット終了であれば、「PC会議再生パケットポインタ」が示すPC会議ファイルの次パケットデータポインタ「0」がPC会議パケットデータの終了を示し、「PC会議中断再生制御」、または「PC会議再生開始制御」へ再生完了を通知する(ステップS754)。ステップS753においてPC会議パケット終了でなければ、PC会議再生パケットポインタのPC会議ファイルデータを入力する(ステップS755)。さらに再生実行時間を制御する再生タイマをPC会議パケットデータの「操作時間」に設定する(ステップS756)。続いて、再生モードが早送りに設定されているか否かを判断し(ステップS757)、早送りである場合、さらに音声データであるか否かを判断する(ステップS758)。つまり、「早送り再生」の場合音声データは再生しない。音声データでなければ、終了および停止の有無を判断する(ステップS759、S760)。ここで、終了あるいは停止でなければ、再生タイマは秒単位にカウントアップされPC会議パケットデータの操作時間に達するのを監視する(ステップS761)。通常再生は実際の操作間隔で再生され、早送り再生は再生間隔ごとに再生される。ステップS761において再生タイマ<操作時間であれば、PC会議パケット再生制御を実行する(ステップS762)。さらにPC会議パケットデータの「次パケットデータポインタ」を「PC会議再生パケットポインタ」へ設定する(ステップS763)。さらにPC会議パケット終了であるか否かを判断する(ステップS764)。ここでPC会議パケット終了であれば、再生完了を通知する(ステップS765)。ステップS764においてPC会議パケット終了でなければ、PC会議パケットデータを入力し(ステップS766)、再生モードが早送りに設定されているかを判断する(ステップS767)。ここで早送り再生の場合、再生タイマを「操作時間 − 再生間隔(特定長に設定可能)」に設定する(ステップS768)。これにより再生間隔後に実行される。
つぎに、PC会議コマ送り再生の制御動作について図58のフローチャートを参照し説明する。まず、「PC会議再生パケットポインタ」が示すPC会議ファイルの次パケットデータポインタ「0」がPC会議パケットデータの終了を示すかを判断する(ステップS771)。ここでPC会議パケットの終了である場合、PC会議ファイルからPC会議再生パケットポインタのPC会議パケットデータを入力し(ステップS772)、PC会議パケット再生制御を実行する(ステップS773)。さらにPC会議パケットデータ「次パケットポインタ」を「PC会議再生パケットポインタ」へ設定する(ステップS774)。続いて、音声データパケットであるか否かを判断する(ステップS775)。ここで音声データパケットであれば、コマ送りタイマを操作時間に設定する(ステップS776)。つまり、音声データ以外は1パケット単位にコマ送り再生する。続いて、PC会議パケット終了であるか否かを判断する(ステップS777)。ここでPC会議パケット終了でなければ、PC会議パケットデータを入力し(ステップS778)、コマ送りタイマ<操作時間であるかを判断する(ステップS779)。ここでコマ送りタイマ<操作時間でなければ、音声データパケットは音声データの開始から終了まで実際のデータ発生間隔再生する(ステップS780)。この間の音声データ以外も実際のデータ発生間隔で再生する。続いて、PC会議再生パケットポインタを更新し(ステップS781)、音声データパケットであるか否かを判断する(ステップS782)。ここで音声データパケットであれば、さらに音声データ制御コードが終了に設定されているかを判断し(ステップS783)、音声データ制御コード「終了」パケットの再生によりコマ送りを終了する。
つぎに、PC会議頭出しの制御動作について図59のフローチャートを参照し説明する。まず、「PC会議頭出しダイアログ」を表示、再生を開始する開始時間(操作時間)を入力する(ステップS791)。続いて、「キャンセル」ボタンへのタッチ有無を判断し(ステップS792)、タッチがなければ、開始時間を保存し(ステップS793)、PC会議再生で起動したプログラムを終了する(ステップS794)。さらにPC会議ファイルから「画面情報パケット」の「次パケットデータポインタ」を「PC会議再生パケットポインタ」へ設定する(ステップS795)。続いて、PC会議パケット終了であるか否かを判断し(ステップS796)、PC会議パケット終了でなければ、PC会議パケットデータを入力する(ステップS797)。続いて、操作時間<開始時間であるかを判断し(ステップS798)、操作時間<開始時間であれば、さらに音声データパケットであるかを判断する(ステップS799)。すなわち、PC会議パケットデータの「操作時間」で取得した「開始時間」に達するまで頭出し処理を続行する。また、音声データは再生しない。音声データパケットでなければ、PC会議パケット再生制御を実行し(ステップS800)、PC会議パケットデータ「次パケットポインタ」を「PC会議再生パケットポインタ」へ設定する(ステップS801)。
つぎに、PC会議パケット再生の制御動作について図60のフローチャートを参照し説明する。PC会議パケットデータが入力値として渡される。まず、プログラム起動パケットであるか否かを判断し(ステップS811)、プログラム起動パケットであれば、プログラム起動パケット実行制御を実行する(ステップS812)。ステップS881においてプログラム起動パケットでなければ、さらにマウスデータパケットであるか否かを判断し(ステップS813)、マウスデータであればそのマウスデータを再生APLプログラムへ渡す(ステップS814)。ステップS813においてマウスデータパケットでなければ、さらにキーボードデータパケットであるか否かを判断し(ステップS815)、キーボードデータパケットであれば、そのキーボードデータを再生APLプログラムへ渡す(ステップS816)。ステップS815においてキーボードデータパケットでなければ、さらに音声データパケットであるか否かを判断し(ステップS817)、音声データパケットであれば、音声データをスピーカへ出力する(ステップS818)。ステップS817において音声データパケットでなければ、さらにウィンドウ情報パケットであるか否かを判断し(ステップS819)、ウィンドウ情報パケットであれば、ウィンドウ情報パケット実行制御を実行する(ステップS820)。ステップS819においてウィンドウ情報パケットでなければ、さらにファイル入力パケットであるか否かを判断し(ステップS821)、ファイル入力パケットであれば、ファイル入力パケット実行制御を実行する(ステップS822)。
(第3の実施の形態)
この実施の形態は、ドラッグスクロール機能を持たないプログラムが表示する文書をドラッグ操作によりスクロール表示させるものであり、以下の課題を解決するための具体例について詳述する。PCで資料を作成し、PCにプロジェクタを接続、会議、プレゼンテーション等を実施することが一般的に行なわれる。この資料は複数ページからなることが殆どで、また、ページ全体を1画面に表示すると文字が小さくなり視認性に欠ける等から資料を作成表示するプログラムが用意するスクロールバー操作により表示領域を水平方向、垂直方向へスクロール、必要とする資料を画面へ表示する操作が行なわれる。また、表示するページ総数によりスクロールボックス移動量が同じであってもスクロール表示量が異なる。このため。目的とする領域を表示するためスクロールボックス移動量が操作者に判らず、行ったり来たりさせることになる。これが集中力を削ぐことになり会議の効率を悪くしている。そこで、本発明は目的とする領域のスクロール表示を容易にするものである。
また、複数のプログラムを並べて表示する場合、スクロール領域が複数存在することになる。また、プログラムによっては複数のスクロール領域を持つ場合がある。このためスクロール領域の選択手段が必要となる。複数のスクロール領域を交互に操作する場合、その都度選択操作が必要となる。また、選択を忘れると意図しない領域がスクロール表示されるなどスムーズな会議の流れを止めることになる。そこで、本発明はスクロール操作の誤操作を防止する。
まず、第3の実施の形態としてドラッグスクロール方式について説明する。図61−1〜図61−3はこの第3の実施の形態にかかる基本構成を示すものである。図61−1において、PC100Pは、Windows(登録商標)、Linux(登録商標)、MAC・OS等の汎用OS下で動作するAPLプログラムとして動作、マウスによるドラッグ操作により他のAPLプログラムをスクロール表示させる。図61−2は、講演。講義におけるシステム構成例であり、PDP、液晶リアプロジェクタ等の大型表示装置の表示面に透明に設置された座標入力装置をPC(パソコン)のディスプレイとして接続、PCの電子文書として作成された講義(講演)資料を表示、画面へタッチドラッグ操作によりスクロール表示させる。図61−3は、会議におけるシステム構成例であり、タブレットPC100Tにプロジェクタを接続、スクリーンへPCの電子文書として作成された会議資料を表示、ペンタッチドラッグ操作により会議資料をスクロール表示させる。
なお、この第3の実施の形態における表示一体型入力装置およびこの光遮断座標検知方式、タブレットPCの構成、電磁誘導座標検知方式の詳細については、前述した第1の実施の形態で述べた通りであり、ここでの重複説明は省略する。
つぎに、図62を参照し、OSが提供するI/Fにより取得できるスクロール情報について説明する。まず、図示するように、文書表示領域200のウィンドウ左上原点座標(WX,WY))、ウィンドウ幅(WW)、ウィンドウ高さ(WH)が取得される。続いて、水平スクロールバー201のウィンドウ左上原点座標(HX,HY)、ウィンドウ幅(Hw)、ウィンドウ高さ(HH)が取得される。さらに水平スクロールボックス幅(HW)、水平スクロールボックス位置(HB)が取得される。続いて、矢印ボタン幅(Hs)が取得される。さらに垂直スクロールバー202のウィンドウ左上原点座標(VX,VY)、ウィンドウ幅(VW()、ウィンドウ高さ(Vh)が取得される。また、垂直スクロールボックス高さ(VH)、垂直スクロールボックス位置(VB)が取得され、矢印ボタン高さ(Vs)が取得される。
つぎに、図63を参照し、ドラッグ長とスクロール長を一致させる方法を説明する。水平スクロールボックス(HW)をHW長移動すると文書表示領域がWW長水平スクロール表示する。水平方向ドラッグ長(HL)に対して水平スクロールボックス移動量(HH)を以下とするとドラッグ長とスクロール長が一致することになる。
HH = HL/WW × HW
垂直スクロールボックス(VH)をVH長移動すると文書表示領域がWH長垂直スクロール表示する。
垂直方向ドラッグ長(VL)に対して垂直スクロールボックス移動量(VV)を以下とするとドラッグ長とスクロール長が一致することになる。
VV = VL/WH × VH
つぎに、図64を参照し、スクロールバー検索方法を説明する。ドラッグ操作開始座標下のウィンドウ左上原点座標(WX、WY)、幅(WW)、高さ(WH)を取得する。画面表示中の全ウィンドウ情報(左上原点座標、幅、高さ、ウィンドウクラス)を取得、ウィンドウクラスがスクロールバーを示す値(Windows(登録商標)においては「ScrollBar」)に設定されているウィンドウの左上原点X座標が以下である場合、ドラッグ領域の垂直スクロールバーとしてウィンドウハンドルを取得する。
ウィンドウ左上原点X座標 WX + WW
同様にウィンドウの左上原点Y座標が以下である場合、ドラッグ領域の水平スクロールバーとしてウィンドウハンドルを取得する。
ウィンドウ左上原点Y座標 WY + WH
水平(垂直)スクロール表示のみの場合、水平(垂直)スクロールバーのみ検索される。
つぎに、図65を参照し、スクロール制御を説明する。ドラッグ操作によりAPLの機能が実行されないよう全画面サイズの透明ウィンドウ表示する。(X0,Y0)から(X1、Y1)へのドラッグ操作により、(X0,Y0)座標下のドラッグ領域ウィンドウ情報を取得する。ドラッグ領域ウィンドウに近接する水平スクロールバーウィンドウを検索、水平スクロールボックス位置(HB)、水平スクロールボックス幅(HW)を取得する。ドラッグ領域ウィンドウに近接する垂直スクロールバーウィンドウを検索、垂直スクロールボックス位置(VB)、垂直スクロールボックス高さ(VH)を取得する。水平方向ドラッグ長(HL=X0−X1)から水平スクロールボックス移動量(HH)を算出、水平スクロールボックス移動位置(HP)を算出、HPへ水平スクロールボックスを移動する。
X0>X1である場合、HP = HB + HH
X0<X1である場合、HP = HB − HH
垂直方向ドラッグ長(VL=Y1−Y0)から垂直スクロールボックス移動量(VV)を算出、垂直スクロールボックス移動位置(VP)を算出、VPへ垂直スクロールボックスを移動する。
Y0>Y1である場合、VP = VB + VV
Y0<Y1である場合、VP = VB − VV
ドラッグスクロール操作の結果を示す。ドラッグ開始点座標の画像がドラッグ終了点座標へ移動することになる。
つぎに、図66のフローチャートを参照し、スクロール制御動作について説明する。まず、スクロール制御プログラムはディスクトップアイコンのダブルクリック等OSが提供する方法により起動され、スクロールツールバーを表示する(ステップS901)。続いて、操作モードをアイドルに設定、すなわち、スクロールツールバー操作以外は通常のAPL操作が可能なモードに設定する(ステップS902)。さらに、マウスデータの入力有無を判断する(ステップS903)。スクロールモード時は全マウスデータ、アイドルモード時はスクロールツールバーへの操作マウスデータのみ入力される。マウスデータの入力があれば、さらにツールバー座標であるかを判断する(ステップS904)。ここでツールバー座標でなければ、スクロールツールバー以外のマウス操作はスクロール表示制御を実行する(ステップS905)。ステップS904においてツールバー座標の入力であれば、スクロールツールバーへのマウス操作はスクロールツールバー制御を実行する(ステップS906)。続いて、終了であるか否かを判断し(ステップS907)、終了であれば、終了ボタンによりスクロール制御を終了する(ステップS908)。
つぎに、図67のフローチャートを参照し、スクロールツールバーの制御動作について説明する。ここでは、クリックON(ペンダウン)時のマウスデータが引数として渡される。まず、クリックON座標のボタン識別を保存し(ステップS911)、クリックボタンを選択表示する(ステップS912)。(ボタンは通常表示、選択表示の2つの形態を持つものとする)。その後、スクロールボタンであるか否かを判断し(ステップS913)、スクロールボタンである場合、さらに操作モードがスクロールに設定されているかを判断する(ステップS914)。ここで、スクロールボタンによる操作モードであれば、クリックボタンの通常表示を行なう(ステップS915)。すなわち、スクロールボタンはアイドルモード時通常表示、スクロールモード時選択表示とする。続いて、マウスデータの入力有無を判断し(ステップS916)、マウスデータの入力があれば、さらにクリックOFFであるか否かを判断する(ステップS917)。すなわち、クリックOFF(ペンアップ)までのマウスデータを入力する。続いて、スクロールボタンであるか否かを判断し(ステップS918)、スクロールボタンであれば、さらに操作モードがアイドルに設定されているか否かを判断する(ステップS919)。操作モードがアイドルに設定されていれば、操作モードをスクロールに設定する(ステップS920)。さらに「スクロールボタン」によりアイドルモードからスクロールモードへ移行、ドラッグ操作領域となる全画面サイの透明なスクロールウィンドウを表示する(ステップS921)。ステップS919でアイドルの操作モードでなければ、アイドルの操作モードにし(ステップS922)、スクロールウィンドウを消去する(ステップS923)。ステップS918においてスクロールボタンでなければ、さらに終了ボタンの入力有無を判断し(ステップS924)、終了ボタンの入力であれば、さらに操作モードがスクロールに設定されているか否かを判断する(ステップS925)。ここで、スクロールの操作モードであれば、「スクロールボタン」によりスクロールモードからアイドルモードへ移行、スクロールウィンドウを閉じる(ステップS926)。「終了」ボタンにより、スクロールウィンドウを閉じる。
つぎに、図68のフローチャートを参照し、スクロール表示の制御動作について説明する。ここでは、クリックON(ペンダウン)時のマウスデータが引数として渡される。まず、クリックON座標マウスデータを保存し(ステップS931)、クリックON座標からスクロールバーウィンドウを検索し(ステップS932)、スクロールバーウィンドウハンドルを取得する。続いて、マウスデータ入力の有無を判断し(ステップS933)、マウスデータの入力があれば、クリックOFF(ペンアップ)までのマウスデータを入力する。続いて、クリックOFFであるか否かを判断し(ステップS934)、クリックOFFでなければ、保存マウス座標と入力マウス座標間のドラッグ長(√(入力X座標−保存X座標)2+(入力Y座標−保存Y座標)2)を算出する(ステップS935)。さらにドラック長>実行長であるかを判断する(ステップS936)。つまりドラッグ長がスクロール実行長(テストによる最適値)に達する毎にスクロール表示を実行する。続いて、垂直スクロールハンドルが無効に設定されているかを判断する(ステップS937)。ここで垂直スクロールハンドルが無効に設定されていなければ、垂直スクロールバーウィンドウが存在する場合、垂直方向ドラッグ長(入力Y座標−保存Y座標)を算出し(ステップS938)、垂直ドラッグ方向を算出する(ステップS939)。続いて、垂直ドラッグ長に等しい垂直スクロールボックス移動量を算出し、垂直ドラッグ方向から垂直スクロールボックス移動位置を算出する(ステップS940)。さらに垂直スクロールボックスを垂直スクロールボックス移動位置へ移動することにより垂直スクロール表示する(ステップS941)。続いて、水平スクロールハンドルが無効に設定されているかを判断し(ステップS942)、無効に設定されていなければ、水平スクロールバーウィンドウが存在する場合、水平方向ドラッグ長(入力X座標−保存X座標)を算出し(ステップS943)、水平ドラッグ方向を算出する(ステップS944)。さらに水平ドラッグ長に等しい水平スクロールボックス移動量を算出、水平ドラッグ方向から水平スクロールボックス移動位置を算出する(ステップS945)。続いて、水平スクロールボックスを水平スクロールボックス移動位置へ移動することにより水平スクロール表示する(ステップS946)。さらに入力マウス座標を保存し(ステップS947)、ドラッグ長算出の起点座標とする。その後、クリックOFFであるか否かを判断し(ステップS948)、クリックOFFになるまで上記動作を繰り返し実行する。
つぎに、図69のフローチャートを参照し、スクロールバーウィンドウ検索の制御動作について説明する。ここでは、ドラッグ開始座標が引数として渡される。まず、水平スクロールバーウィンドウハンドルを無効(0)に設定し(ステップS951)、垂直スクロールバーウィンドウハンドルを無効(0)に設定する(ステップS952)。さらに、ドラッグ開始座標のウィンドウ情報(スクロールウィンドウ以外)を取得し(ステップS953)、水平スクロールバーウィンドウを検索し(ステップS954)、検索に成功しかた否かを判断する(ステップS955)。ここで水平スクロールバーウィンドウが検索できた場合、水平スクロールバーウィンドウのハンドルを保存する(ステップS956)。このハンドルにより水平スクロール情報の取得、水平スクロールボックスの移動が実行される。垂直スクロールバーウィンドウが検索できた場合、垂直スクロールバーウィンドウのハンドルを保存する(ステップS957)。検索に成功したか否かを判断し(ステップS958)、検索に成功したならば、このハンドルにより垂直スクロール情報の取得、垂直スクロールボックスの移動が実行される(ステップS959)。
(第4の実施の形態)
この実施の形態は、電子文書の形で文書添削を可能とするものであり、以下の課題を解決するための具体例について詳述する。一般的に文書を作成すると上司による審査(添削)が行なわれ間違いなどの修正要求がくる。この時修正箇所を明示するために文書を印刷、印刷文書上にペンで直接書き込むことが行なわれる。作成文書が添削され添削文書として保存される場合、この添削文書と添削対照となる文書の管理が徹底されないと類似文書を修正するなど不具合が起きることになる。そこで、本発明は添削文書と添削対照となる文書の管理を不要とする。
また、添削文書を表示、添削内容を理解、修正文書に切替、文書を修正することを繰り返すと煩わしくなるばかりか、添削内容を間違って理解、間違った修正をすることになる。そこで、本発明は文書修正の間違いを防止する。また、ページ数が多い文書の添削ページを検索するのに順にページ捲りする場合時間がかかり、また、見落とす可能性がある。そこで、本発明は添削ページを確実に簡単に検索する。また、添削文字が描画されているページを検索修正する場合、修正文書もこのページを表示する必要がある。両方のページ捲り操作が必要となり煩わしくなる。そこで、本発明は修正ページの表示を容易にする。また、添削文書と修正文書を同一画面に並べて表示する場合、表示領域が半分となり添削箇所が表示領域外となる可能性が高くなりスクロール表示の手間が発生することになる。そこで、本発明はスクロールの手間を省くことを目的とする。また、文書をスクロール表示させるスクロールバーは画面端に小さく表示されるため操作性に欠ける。そこで、本発明はスクロール操作の効率化を図ることを目的とする。添削文書を表示する文書作成プログラム操作が可能であれば誤って添削対象となる文書が修正されると添削内容が合わなくなるなどの不具合が生じる。そこで、本発明は添削対象文書が誤って修正されるのを防止する。
まず、第4の実施の形態として文書添削方式について説明する。図70は、この第4の実施の形態にかかる基本構成を示すものである。
なお、この第4の実施の形態における表示一体型入力装置およびこの光遮断座標検知方式、タブレットPCの構成、電磁誘導座標検知方式の詳細については、前述した第1の実施の形態で述べた通りであり、ここでの重複説明は省略する。
図70において、通常のマウス、キーボード操作を前提とするPC上で文書作成プログラムにより文書を作成する。(タブレットPCで作成してもよい)ネットワーク、あるいはFD等の記録媒体を介して文書添削者へ作成した文書を渡す。タブレットPCで作成文書を表示、文書添削プログラムにより誤字の指摘、構成内容の変更、レイアウト変更などの指示を手書き文字(図形)により表示されている文書上に描画する。このとき、文書作成プログラムが提供する機能により、「ページ情報」(Microsoft Wordにおける「ページ番号」、Excelにおける「シート番号」PowerPointにおける「スライド番号」等)、「表示倍率」(50%、100&等)、文書座標空間(文書左上原点座標「画面表示領域外となる場合−値」、文書幅「DW」、文書高さ「DH」)を取得、手書き文字(図形)を文書座標に変換保存する。(現在この機能はMicrosoft Word、Excel、PowerPontにより提供されている)マウス操作を基本するPCにおいてはタブレットを接続、ペンにより上書き文字を描画する。文書作成者は文書を表示、添削プログラムにより添削描画された手書き文字(図形)を表示、この指示内容により文書を修正する。
つぎに、図71を参照し、文書座標算出方法を説明する。文書の表示倍率、スクロール表示状態により画面上に表示される文書の位置は不定となる。文書の左上原点座標(DX,DY)、文書幅(DW)、文章高さ(DH)、表示倍率%(V)、表示ページを文書作成プログラムが提供するI/Fにより取得する。画面幅(SW)、画面高さ(SH)はOSが提供するI/Fにより取得する。左上原点が画面内にある場合、手書き文字描画座標(X,Y)の文書座標(PX,PY)は以下となる。文書座標は100%表示時に換算保存するものとする。
PX = (X − DX) * (100 / V)
PY = (Y − DY) * (100 / V)
左上原点が画面外となる場合、(−DX)、(−DY)となり手書き文字描画座標(X、Y)の文書座標(PX,PY)は以下となる。
PX = (X + DX) * (100 / V)
PY = (Y + DY) * (100 / V)
(DH−DY)<SHである場合文書が2ページに跨って表示されていると判定、文書作成プログラムが提供するI/Fを介してページ間隔「DS」を取得、手書き文字ストローク座標(X,Y)が、
Y < (DH + DY) の場合、文書1ページへの手書き文字
Y ≧ (DH + DY) の場合、文書2ページへの手書き文字
両方に跨る場合、両ページへの手書き文字とする。
文書2への手書き文字描画座標(X,Y,)の文書座標(PX1、PY1)は以下となる。
PX1 = ( X − DX ) * (100 / V)
PY1 = ( Y − (DH−DY+DS) ) * (100 / V)
つぎに、図72を参照し、文書座標から画面座標への算出方法を説明する。文書の左上原点座標(DX,DY)、文書幅(DW)、文書高さ(DH)、表示倍率%(V)、画面幅(SH)、画面高さ(SW)を取得する。
文書1ページの文書座標(PX,PY)の画面座標(X,Y)は以下となる。
X = PX * (V / 100) + DX
Y = PY * (V / 100) + DY
文書1ページの画面領域は左上座標(0,0)、右下座標(SW−1、DH−DY−1)となり、この領域内に画面座標がある場合に描画する。
文書2ページの文書座標(PX1,PY1)の画面座標(X1,Y1)は以下となる。
X1 = PX1 * (V / 100) + DX
Y1 = PY1 * (V / 100) + (DH−DY+DS)
文書2ページの画面領域は左上座標(0,DH−DY)、右下座標(SW−1、SH−1)となり、この領域内に画面座標がある場合に描画する。
つぎに、図73を参照し、手書き文字(図形)描画方法を説明する。(X0,Y0)、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)、(X5,Y5)が1ストロークのドラッグ軌跡を示す。手書き文字描画は2点間((X0,Y0)−(X1、Y1)、(X0,Y0)−(X1,Y1)、...)を設定されている色、太さにて線描画することにより描画する。手書き文字はストローク単位(ペンタッチ〜ペンデタッチ)に色、太さ、ストローク座標を文書添削ファイルへ保存する。
つぎに、図74を参照し、手書き文字消去について説明する。X0,Y0)、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)、(X5,Y5)が1ストロークのドラッグ軌跡を示す。
ペンタッチ座標(Xp,Yp)、消しゴム長(L)である場合、消しゴムカーソルの矩形領域は右上座標(Xp−(L/2),Yp−(L/2))、右下座標(Xp+(L/2),Yp+(L/2))となる。
手書き文字座標(X,Y)がこの領域内にある場合これに接続される座標間線分を削除する。
(X2、Y2)−(X3,Y3)線分、(X3,Y3−(X4,Y4)線分が削除されることになる。
消去によりストロークが分断される場合、ストロークを分ける。
(X0,Y0)−(X2,Y2)ストロークと(X4,Y4)−(X5,Y5)の2ストロークとなる。
つぎに、図75を参照し、文書スクロール方法を説明する。(X0,Y0)から(X1,Y1)へのドラッグ操作により水平方向ドラッグ量(X1−X0)、垂直方向ドラッグ量(Y1−Y0)を算出する。水平方向ドラッグ量を水平スクロール摘み移動量に換算(換算係数はテストによる最適値)OSが提供するI/Fを介して水平スクロール摘みを移動することにより水平スクロール表示する。垂直方向ドラッグ量を垂直スクロール摘み移動量に換算(換算係数はテストによる最適値)OSが提供するI/Fを介して垂直スクロール摘みを移動することにより垂直スクロール表示する。
つぎに、図76を参照し、ウィンドウ表示制御を説明する。まず、文書作成プログラムが作成した「APLウィンドウ」を示す。ここでは、APLウィンドウの前面に全画面サイズの背景を透明とする(背面のウィンドウが透けて見える)「文字描画ウィンドウ」を作成、手書き文字(図形)を描画する。このとき文書作成プログラムが作成するウィンドウが表示されているがマウスデータを全て文字描画ウィンドウが受け取り文書作成プログラムは操作不可となっている。文字描画ウィンドウの前面に全画面サイズの背景を透明とする「スクロールウィンドウ」を作成、ドラッグ操作によりAPLウィンドウをスクロール表示する。スクロールウィンドウはスクロールボタン以外のボタンへのペンタッチにより消去する。ここでは、文書作成プログラムを起動、修正文書を表示、さらに、同じ文書作成プログラムを起動、添削文書を表示、2個のAPLウィンドウを並列表示した図を示す。このとき、添削文書を表示するAPLウィンドウ上だけ(右半分)文字描画ウィンドウを表示、修正文書を表示するウィンドウ上には表示せず文書作成プログラム操作を可能とする。スクロールウィンドウは全画面上に表示、スクロール操作下のAPLウィンドウをスクロール表示する。ここでは、修正文書表示APLウィンドウ上に重なるように添削文書表示APLウィンドウを表示、文字描画ウィンドウを表示した図を示す。修正文書表示APLウィンドウを最前面に表示することにより、文書作成プログラム操作が可能となる。
つぎに、図77を参照し、文書添削修正制御を説明する。文書添削プログラム301は、文書300上に透明ウィンドウを表示、手書き文字(図形)を描画する。文書作成プログラム302が提供するI/Fを介して文書の左上原点座標(DX,DY)、文書幅(DW)、文書高さ(DH)、表示倍率%(V)、ページ番号(Excel:シート番号、PowerPoint:セル番号)を取得する。手書き文字(図形)描画時の画面上のドラッグ座標を100%表示時の文書座標に変換、ストローク単位(ペンタッチ(マウスボタンON)からペンデタッチ(マウスボタンOFF))に保存する。添削対象となる文書ファイル303を保存する。文書修正時、文書添削ファイルから文書ファイル303を作成、文書作成プログラム302を起動表示する。文書作成プログラム302が提供するI/Fを介して文書座標情報の取得、表示ページ、表示倍率を指定する。文書300上に透明ウィンドウを表示、文書添削ファイルの表示ページの手書き文字ストローク情報を画面座標に変換、文書表示ウィンドウ領域の手書き文字を描画する。文書300の修正は文書作成プログラム302が提供する機能を用いて行なう。
つぎに、図78を参照し、文書添削UIについて説明する。「文書添削プログラム」は起動時「文書添削モード選択」ツールバー305を表示、選択させる。ここで、文書添削モード306は、新規に文書ファイルの添削文字(図形)を描画する。添削修正モード307は、既に描画されている添削文字を表示、追加、削除する。文書修正モード308は、添削文字を表示、オリジナル文書を編集する。終了ボタン309は終了時に選択する。
文書添削モード時、「文書ファイルを開く」ダイアログボックスを表示、文書ファイルを入力する。添削修正・文書修正モード選択時、「文書添削ファイルを開く」ダイアログボックスを表示、文書添削ファイルを入力する。ついで、「文書添削」モード306、「添削修正」モード307時ファイル入力後、「文書添削」ツールバー310を表示する。
「文書修正」モード時ファイル入力後、「文書修正」ツールバー311を表示する。「設定」ボタンにより、「文書添削の設定」ダイアログを表示する。ここで添削手書き文字(図形)描画時のペンの太さ、色、手書き文字(図形)消去時の消しゴムの大きさを選択する。添削文書の通常表示(全画面)、並列表示(右半分)時の文書の表示倍率を選択する。添削文書のページ捲り時、添削文字描画ページだけ捲るか全て順に捲るか選択する。「終了」ボタンにより、「文書添削ファイル保存」ダイアログボックスを表示、保存する。
つぎに、図79を参照し、文書添削、添削修正操作を説明する。文書添削プログラムは起動時「文書添削」ツールバー310を表示する。この「文書添削」ツールバー310の各ボタンの機能を下記表1に示す。
続いて、全画面サイズの透明ウィンドウを表示する(図79中央画面参照)。これにより文書プログラムの表示内容は全て視認可能であるがペン(マウス)操作は文書プログラムには渡らず文書プログラムの操作が不可となる。「ペン」ボタン(図79参照)によりペンに設定されている色、太さにて手書き文字描画する。この描画時のストローク情報を文書座標へ変換、文書添削ファイルへ保存する。「消去」ボタ(図79参照)により設定されている大きさの消去カーソルを表示、カーソルが触れる部分の手書き文字を消去、文書添削ファイルから削除する。「次頁」(前頁)ボタンにより現在表示されている文書ページの次ページ番号(前ページ番号)を文書プログラムへ渡し表示する。ページ変更後文書添削ファイルに同ページ、表示画像領域の添削手書き文字が保存さている場合表示する。「スクロール」ボタンによりドラッグ操作による水平方向ドラッグ量、垂直方向ドラッグ量から水平スクロール摘み、水平スクロール摘みを移動させることにより文書画像をスクロール表示させる。スクロール後表示画像領域の添削手書き文字が保存されている場合表示する。
つぎに、図80を参照し、文書修正操作を説明する。文書添削プログラムは文書修正モード選択により「文書修正」ツールバー311を表示する。この「文書修正」ツールバー311の各ボタンの機能を下記表2に示す。
「添削」ボタンにより添削文書を表示する時全画面サイズの透明ウィンドウを表示、表示ページ画像に対する添削手書き文字を表示する(図80参照)。「修正」ボタンにより、添削文書の表示ページと同一ページの修正文書を自動表示する(図80参照)。編集文書表示時は透明ウィンドウを表示せず通常の文書作成プログラム操作を可能とする。「並列」ボタンにより画面左半分へ修正文書、右半分へ添削文書を表示する(図80下図参照)。このとき、添削文書を表示する文書作成プログラムへ設定ダイアログボックスにより選択されている表示倍率を渡し文書画像を縮小/拡大表示する。添削文書上に透明ウィンドウを表示し、添削文字を表示し、参照しながらの文書修正を可能にする。
つぎに、図81のフローチャートを参照し、文書添削制御について説明する。まず、動作モード選択制御を実行、動作モードを得る(ステップS1001)。その後、マウス入力の有無を判断する(ステップS1002)。マウス入力があれば、つまり、文書添削(文書修正)ツールバー、スクロールウィンドウ、文字描画ウィンドウ上にペンタッチ(ボタンON)されたときマウス座標を入力する。さらにツールバー上の座標であるかを判断し(ステップS1003)、ツールバー上の座標でなければ、さらに操作モードが文字描画に設定されているかを判断する(ステップS1004)。ここで文字描画の操作モードであれば、文字描画制御を実行、文字描画ウィンドウへ手書き文字(図形)を描画する(ステップS1005)。ステップS1004において文字描画の操作モードでなければ、さらに操作モードが文字消去に設定されているかを判断する(ステップS1006)。ここで文字消去の操作モードに設定されていれば、文字消去制御を実行、文字描画ウィンドウへ描画された手書き文字を消去する(ステップS1007)。ステップS1006において文字消去の操作モードに設定されていなければ、さらに操作モードがスクロールに設定されているかを判断する(ステップS1008).ここでスクロールの操作モードに設定されていれば、スクロール制御を実行、スクロールウィンドウ上でのドラッグ操作をスクロール量に換算、文書をスクロール表示する(ステップS1009)。ステップS1008においてスクロールの操作モードに設定されていなければ、さらに動作モードが文書添削に設定されているかを判断する(ステップS1010)。ここで文書添削の動作モードに設定されていれば、文書添削ツールバーへのタッチで文書添削ツールバー制御を実行する(ステップS1011)。ステップS1010において文書添削の動作モードに設定されていなければ、さらに添削修正の動作モードであるかを判断する(ステップS1012)。ここで添削修正の動作モードであれば、文書添削ツールバー制御を実行する(ステップS1013)。ステップS1012において添削修正の動作モードでなければ、さらに動作モードが文書修正に設定されているかを判断する(ステップS1014)。ここで文書修正の動作モードであれば、文書修正ツールバーへのタッチで文書修正ツールバー制御を実行する(ステップS1015)。
つぎに、図82のフローチャートを参照し、動作モード選択制御について説明する。まず、動作モード選択ツールバーを表示し(ステップS1021)、マウス入力の有無を判断し(ステップS1022)、動作モード選択ツールバーへのペンタッチからペンデタッチまでのマウス座標を入力する。続いて、選択表示中のボタンを通常表示、ペンタッチ座標下にボタンがある場合ボタンを選択表示する(ステップS1023)。さらに、ボタンOFFの有無を判断し(ステップS1024)、ボタンOFF(ペンデタッチ)によりボタン機能を実行する。続いて、ツールバー上座標であるかを判断し(ステップS1025)、ツールバー上座標であれば、動作モード選択ツールバーを消去する(ステップS1026)。続いて、文書添削であるかを判断し(ステップS1027)、文書添削であれば、「文書添削」ボタンにより文書添削初期化制御を実行し(ステップS1028)、文書添削初期化制御を実行する(ステップS1029)。ステップS1027において文書添削でなければ、さらに添削修正であるかを判断し(ステップS1030)、添削修正であれば、動作モードを添削修正に設定し(ステップS1031)、「添削修正」ボタンにより添削修正初期化制御を実行する(ステップS1032)。ステップS1030において添削修正でなければ、さらに文書修正であるかを判断し(ステップS1033)、文書修正であれば、動作モードを文書修正に設定し(ステップS1034)、「文書修正」ボタンンにより文書修正初期化制御を実行する(ステップS1035)。続いて、キャンセルの有無を判断し(ステップS1036)、キャンセルでなければこの処理をリターンし、キャンセルであれば、ステップS1021に戻り、上記動作を実行する。
つぎに、図83のフローチャートを参照し、文書添削初期化制御について説明する。まず、「文書ファイルを開く」ダイアログボックスを表示、文書ファイルパスを入力する(ステップS1041)。その後、キャンセルの有無を判断し(ステップS1042)、ダイアログボックス「キャンセル」ボタンにより文書添削初期化制御を中止する。ここで、キャンセルがなければ、文書ファイルを入力し(ステップS1043)、文書添削ファイルを作成、文書ファイルを保存、文書ファイル名、作成年月日時分秒を設定する(ステップS1044)。さらに。入力した文書ファイルパスを指定して文書作成プログラムを起動する(ステップS1045)。文書作成プログラムは文書ファイルから1頁の文書を表示する。続いて、添削文書ページを1に設定し(ステップS1046)、全画面サイズの背景を透明とする文字描画ウィンドウを表示する(ステップS1047)。さらに文書添削ツールバーを表示し(ステップS1048)、文書添削ツールバー「ペン」ボタンを選択表示とし(ステップS1049)、操作モードを文字描画に設定する(ステップS1050)。
つぎに、図84のフローチャートを参照し、添削修正初期化制御について説明する。まず、「文書添削ファイルを開く」ダイアログボックスを表示、文書添削ファイルパスを入力する(ステップS1051)。その後、キャンセルの有無を判断し(ステップS1052)、ダイアログボックス「キャンセル」ボタンにより添削修正初期化制御を中止する。続いて、文書添削ファイルを入力する(ステップS1053)。さらに文書添削ファイルから文書ファイルを入力、文書ファイルを作成し(ステップS1054)、作成した文書ファイルパスを渡し文書作成プログラムを起動する(ステップS1055)。続いて、添削文書ページを1に設定し(ステップS1056)、添削文字表示制御を実行、文書ページ1への添削文字を描画する(ステップS1057)。さらに文書添削ツールバーを表示し(ステップS1058)、文書添削ツールバー「ペン」ボタンを選択表示とし(ステップS1059)、操作モードを文字描画に設定する(ステップS1060)。
つぎに、図85のフローチャートを参照し、文書修正初期化制御について説明する。まず、「文書添削ファイルを開く」ダイアログボックスを表示、文書添削ファイルパスを入力する(ステップS1061)。その後、キャンセルの有無を判断し(ステップS1062)、ダイアログボックス「キャンセル」ボタンにより文書修正初期化制御を中止する。ここでキャンセルがなければ、文書添削ファイルを入力し(ステップS1063)、文書添削ファイルに保存されている文書ファイルを入力、修正用文書ファイルを作成する(ステップS1064)。さらに、作成した文書ファイルパスを指定して修正用文書作成プログラムを起動し(ステップS1065)、この文書作成プログラムが提供する機能を用いて文書を修正する。さらに修正文書ページを1に設定し(ステップS1066)、添削文字表示用の文書ファイルを作成する(ステップS1067)。続いて、作成した文書ファイルパスを指定して添削文字表示用の文書作成プログラムを起動し(ステップS1068)、添削文書ページを1に設定する(ステップS1069)。続いて、添削文字表示制御を実行、文書ページ1への添削文字を描画し(ステップ1070)、文書修正ツールバーを表示する(ステップS1071)。続いて、文書修正ツールバー「添削」ボタンを選択表示し(ステップS1072)、操作モードをアイドルに設定し(ステップS1073)、表示モードを添削文書に設定する(ステップS1074)。
つぎに、図86−1、図86−2のフローチャートを参照し、文書添削ツールバー制御について説明する。まず、マウス入力を判断し(ステップS1081)、ペンタッチ(ボタンON)からペンデタッチ(ボタンOFF)までのマウスデータを入力する。続いて、選択表示中のボタンを通常表示、ペンタッチ座標下にボタンがある場合ボタンを選択表示する(ステップS1082)。さらにボタンOFFの有無を判断する(ステップS1083)。つまり、ペンデタッチによりボタン機能を実行する。ボタンOFFであれば、さらにツールバー上の座標であるかを判断し(ステップS1084)、ツールバー上の座標であれば、さらにスクロールの操作モードに設定されているかを判断する(ステップS1085)。ここでスクロールの操作モードであれば、スクロールモードはツールバーへのペンタッチで解除、スクロールウィンドウを消去する(ステップS1086)。さらに、操作モードをアイドルに設定し(ステップS1087)、ペンボタンの入力であるかを判断する(ステップS1088)。ここで、ペンボタンの入力であれば、操作モードを文字描画に設定する(ステップS1089)。ステップS1088においてペンボタンの入力でなければ、さらに消去ボタンの入力であるかを判断する(ステップS1090)。ここで消去ボタンの入力であれば、文字消去の操作モードに設定する(ステップS1091)。ステップS1090において消去ボタンの入力でなければ、さらにスクロールボタンの入力であるかを判断し(ステップS1092)、スクロールボタンの入力であれば、操作モードをスクロールに設定し(ステップS1093)、スクロールボタン」によりスクロールモードへ移行、スクロールウィンドウを表示する(ステップS1094)。ステップS1092においてスクロールボタンの入力でなければ、さらに次頁ボタンの入力であるかを判断し(ステップS1095)、次頁ボタンの入力であれば、「次頁」ボタンにより次ページ表示制御を実行、文書の次ページを表示する(ステップS1096)。ステップS1095において次頁ボタンの入力でなければ、さらに前頁ボタンの入力であるかを判断する(ステップS1097)。ここで前頁ボタンの入力であれば、「前頁」ボタンにより次ページ表示制御を実行、文書の前ページを表示する(ステップS1098)。ステップS1097において前頁ボタンの入力でなければ、さらに設定ボタンの入力であるかを判断する(ステップS1099)。ここで、設定ボタンの入力であれば、「設定」ボタンにより文書添削モード設定制御を実行、モードを設定する(ステップS1100)。
ステップS1099において設定ボタンの入力でなければ、さらに終了ボタンの入力であるかを判断する(ステップS1101)。ここで、終了ボタンの入力であれば、「終了」ボタンにより「文書添削ファイル保存」ダイアログを表示する(ステップS1102)。さらに上記ファイルの保存可否を判断し(ステップS1103)、保存の場合、文書添削ファイル名を入力、文書添削ファイルをユーザー指定ファイルへコピーし(ステップS1104)、文書作成プログラムを終了させる(ステップS1105)。続いて、文書添削ツールバーを消去し(ステップS1106)、文字描画ウィンドウを消去する(ステップS1107)。一方、ステップS1084においてツールバー上の座標でない場合、全ボタンを通常表示し(ステップS1108)、操作モードボタンを選択表示、現在のモードを示す(ステップS1109)。
つぎに、図87−1、図87−2のフローチャートを参照し、文書修正ツールバー制御について説明する。まず、マウス入力の有無を判断し(ステップS1111)、ペンタッチ(ボタンON)からペンデタッチ(ボタンOFF)までのマウスデータを入力する。続いて、選択表示中のボタンを通常表示、ペンタッチ座標下にボタンがある場合ボタンを選択表示する(ステップS1112)。ペンデタッチによりボタン機能を実行する。その後、ボタンOFFであるかを判断し(ステップS1113)、ボタンOFFであれば、さらにツールバー上の座標であるかを判断する(ステップS1114)。ここで、ツールバー上の座標であれば、さらに操作モーがスクロールに設定されているかを判断し(ステップS1115)、スクロールの操作モードであれば、スクロールモードはツールバーへのペンタッチで解除、スクロールウィンドウを消去する(ステップS1116)。続いて、操作モードをアイドルに設定し(ステップS1117)、次頁ボタンの入力であるかを判断し(ステップS1118)、次頁ボタンの入力であれば、次ページの表示制御を実行する(ステップS1119)。ステップS1118において次頁ボタンの入力でなければ、さらに前頁ボタンの入力であるかを判断し(ステップS1120)、前頁の入力であれば、前ページの表示制御を実行する(ステップS1121)。ステップS1120において前頁ボタンの入力でなければ、さらにスクロールボタンの入力であるかを判断し(ステップS1122)、スクロールボタンの入力であれば、操作モードをスクロールに設定し(ステップS1123)、「スクロールボタン」によりスクロールモードへ移行、スクロールウィンドウを表示する(ステップS1124)。ステップS1122においてスクロールボタンの入力でなければ、さらに修正ボタンの入力であるかを判断し(ステップS1125)、修正ボタンの入力であれば、「修正」ボタンにより修正文書表示モードへ移行する(ステップS1126)。さらに添削文字を表示している文字描画ウィンドウを閉じ(ステップS1127)、修正文書表示ウィンドウ全画面表示として最前面へ表示する(ステップS1128)。さらに添削文書頁を修正文書貢へ設定し(ステップS1129)、文書作成プログラムへ修正文書頁を渡し添削文書と同一のページを表示する(ステップS1130)。
ステップS1125において修正ボタンの入力でなければ、さらに添削ボタンの入力であるかを判断し(ステップS1131)、添削ボタンの入力であれば、「添削」ボタンにより添削文書表示モードへ移行する(ステップS1132)。さらに、添削文書表示ウィンドウ全画面表示として最前面へ表示し(ステップS1133)、添削文書表示プログラムへ「通常表示倍率」設定値へ表示依頼し(ステップS1134)。添削文書ページへの添削文字を描画する(ステップS1135)。ステップS1131において添削ボタンの入力でなければ、さらに並列ボタンの入力であるかを判断する(ステップS1136)。ここで、並列ボタンの入力であれば、「並列」ボタンにより並列表示モードへ移行し(ステップS1137)、添削文字が表示されている文字描画ウィンドウを閉じる(ステップS1138)。さらに修正文書を表示するウィンドウを左半分最前面へ表示し(ステップS1139)、添削文書頁を修正文書貢へ設定し(ステップS1140)、文書作成プログラムへ修正文書頁を渡し添削文書と同一のページを表示する(ステップS1141)。続いて、添削文書を表示するウィンドウを右半分最前面へ表示し(ステップS1142)、添削文書表示プログラムへ「並列表示倍率」設定値への表示依頼し(ステップS1143)、添削文書ページへの添削文字を表示する(ステップS1144)。ステップS1136において並列ボタンではない場合、さらに設定ボタンの入力であるかを判断し(ステップS1145)、設定ボタンの入力であれば、文書添削モード設定制御を実行する(ステップS1146)。ステップS1145において設定ボタンの入力でなければ、さらに終了ボタンの入力であるかを判断する(ステップS1147)。ここで終了ボタンの入力であれば、文書作成プログラムを終了し(ステップS1148)、文書修正ツールバーを消去する(ステップS1149).ステップS1147において終了ボタンの入力でなければ、全ボタンを通常表示し(ステップS1150)、表示モードボタンを選択表示、現在の表示モードを示し(ステップS1151)、操作モードボタンを選択表示、現在の操作モードを示す(ステップS1152)。
つぎに、図88のフローチャートを参照し、次ページ表示制御について説明する。まず、表示中の全ウィンドウのウィンドウキャプション(通常プログラム名、表示ファイル名が設定される)、Zオーダー(重なり順)を取得する(ステップS1161)。Zオーダーがツールバーの次となっているものが直前のアクティブウィンドウ(操作権があたえられていたウィンドウ)となる。続いて、直前にアクティブであったウィンドウキャプション情報から修正文書表示ウィンドウか文字描画ウィンドウか判定する(ステップS1162)。文字描画ウィンドウである場合、添削文書のページ捲りとする。修正文書を表示する文書作成プログラムから修正文書の総貢数を取得する(ステップS1163)。その後、修正文書頁<層頁数であるかを判断し(ステップ1164)、修正文書頁<層頁数であれば、修正文書頁を1つ進め(ステップS1165)、修正文書を表示する文書作成プログラムへ修正文書頁を渡し修正文書頁の文書を表示する(ステップS1166)。ステップS1162において修正文書ウィンドウでなければ、添削文書を表示する文書作成プログラムから添削文書の総貢数を取得し(ステップS1167)、添削文書頁<層頁数であるかを判断し(ステップ1168)、添削文書頁<層頁数であれば、添削文書頁を1つ進める(ステップS1169)。さらに添削文字頁表示であるかを判断し(ステップS1170)、添削文字頁表示であれば、ページ捲りモードが「添削文字描画ページ」に設定されている場合、添削文字が有る次ページを検索する(ステップS1171)。添削文書頁<層頁数であるかを判断し(ステップS1172)、添削文書頁<層頁数でなければ、添削文字を表示している文字描画ウィンドウを閉じる(ステップS1173)。さらに添削文書を表示する文書作成プログラムへ添削文書貢を渡し添削文書頁の文書を表示し(ステップS1174)、添削文書貢の添削文字を表示する(ステップS1175)。
つぎに、図89のフローチャートを参照し、前ページ表示制御について説明する。まず、表示中の全ウィンドウ情報のウィンドウキャプション(通常プログラム名、表示ファイル名が設定される)、Zオーダー(重なり順)を取得する(ステップS1181)。Zオーダーがツールバーの次となっているものが直前のアクティブウィンドウ(操作権があたえられていたウィンドウ)となる。その後、直前にアクティブであったウィンドウキャプション情報から修正文書表示ウィンドウか文字描画ウィンドウか判定する(ステップS1182)。文字描画ウィンドウである場合、添削文書のページ捲りとする。さらに修正文書頁が1であるかを判断し(ステップS1183)、修正文書頁が1でなければ、修正文書頁を1に設定し(ステップS1184)、修正文書を表示する(ステップS1185)。つまり、修正文書を表示する文書作成プログラムへ修正文書頁を渡し修正文書頁の文書を表示する。さらに添削文書頁が1であるかを判断し(ステップS1186)、添削文書頁が1でなければ、添削文書頁を1に設定し(ステップS1187)、添削文字頁の表示であるかを判断する(ステップS1188)。ここで、添削文字があるかを判断し(ステップS1189)、添削文字がなければ、添削文書頁が1であるかを判断する(ステップS1190)。ここで、添削文書頁が1であれば、ページ捲りモードが「添削文字描画ページ」に設定されている場合、添削文字が有る前ページを検索し、添削文字を表示している文字描画ウィンドウを閉じ(ステップS1191)、添削文書を表示する文書作成プログラムへ添削文書貢を渡し添削文書頁の文書を表示し(ステップS1192)、添削文書貢の添削文字を表示する(ステップS1193)。
つぎに、図90のフローチャートを参照し、スクロール制御について説明する。最初のペンタッチ座標(スクロール開始座標)が引数として渡される。まず、ペンタッチ座標下のスクロールウィンドウ下のウィンドウキャプションから修正文書、文字描画ウィンドウを取得し(ステップS1201)、起点座標をタッチ座標に設定する(ステップS12002)。すなわち、ペンタッチ座標下のスクロールウィンドウ下のウィンドウキャプションから修正文書、文字描画ウィンドウか判定する。文字描画ウィンドウである場合、添削文書のスクロールとする。つぎに、スクロール開始座標を保存し、ペンデタッチでスクロール表示を終了する。すなわち、マウス入力の有無を判断し(ステップS1203)、マウス入力であれば、さらにボタンOFFの入力であるかを判断し(ステップS1204)、ボタンOFFでなければ、入力したペン座標(X,Y)、起点座標(X0、Y0)からドラッグ長(√(X−X0)2+(Y−Y0)2)を算出する(ステップS1205)。ドラック長<実行長であるかを判断し(ステップS1206)、ドラッグ長が特定長(テストによる最適値)となったらスクロール表示する。さらに入力したペン座標(X,Y)、起点座標(X0,Y0)から水平方向ドラッグ量(X−X0)を算出する(ステップS1207)。続いて、入力したペン座標(X,Y)、起点座標(X0,Y0)から垂直方向ドラッグ量(Y−Y0)を算出する(ステップS1208)。その後、入力したペン座標を起点座標として保存し(ステップ1209)、スクロールウィンドウを閉じ背面のウィンドウを前面へ表示する(ステップS1210)。続いて、添削文書ウィンドウであるかを判断し(ステップS1211)、添削文書ウィンドウであれば、添削文書表示ウィンドウ上に表示されている文字描画ウィンドウを閉じる(ステップS1212)。続いて、添削文書を表示するウィンドウの水平スクロール摘みを水平方向ドラッグ量に比例する量(テストによる最適値)移動させることにより水平スクロール表示し(ステップS1213)、添削文書を表示するウィンドウの垂直スクロール摘みを垂直方向ドラッグ量に比例する量(テストによる最適値)移動させることにより垂直スクロール表示する(ステップS1214)。続いて、添削文書貢の添削文字をスクロール表示にあわせ表示し(ステップS1215)、スクロールウィンドウを再表示する(ステップS1216)。さらに修正文書を表示するウィンドウの水平スクロール摘みを水平方向ドラッグ量に比例する量(テストによる最適値)移動させることにより水平スクロール表示し(ステップS1217)、修正文書を表示するウィンドウの垂直スクロール摘みを垂直方向ドラッグ量に比例する量(テストによる最適値)移動させることにより垂直スクロール表示し(ステップS1218)、スクロールウィンドウを表示する(ステップS1219)。
つぎに、図91のフローチャートを参照し、添削文字表示制御について説明する。まず、文字描画ウィンドウの左上原点座標(X,Y)、幅(W)、高さ(H)を取得する(ステップS1221)。さらに添削文書を表示する文書作成プログラムから添削文書の左上原点座標(DX,DY)、幅(DW)、高さ(DH)、文書ページ番号を取得する(ステップS1222)。続いて、文書添削ファイルから文書ページ番号に対するストロークデータを入力し(ステップS1223)、画面幅(SW)、画面高さ(SH)を取得する(ステップS1224)。その後、2ページ表示であるかを判断し(ステップS1225)、2ページ表示であれば、(DH−DY<SH)である場合、(文書ページ番号+1)ストロークデータを入力する(ステップS1226)。さらに入力した文書座標(ストローク座標)を画面座標に変換し(ステップS1227)、画面座標変換したストロークデータに画面領域(0,0)〜(SW−1、SH−1)の座標が存在するか検索する(ステップS1228)。続いて、画面領域の有無を判断し(ステップS1229)、画面領域があれば、画面領域のストロークデータをストロークに設定されている色、太さにて描画する(ステップS1230)。
つぎに、図92のフローチャートを参照し、文字描画制御について説明する。手書き文字描画の最初のペンタッチ座標が引数として渡される。まず、ペンに設定されている色、太さ、最初のマウス座標によりストロークデータを作成する(ステップS1231)。マウス入力の有無を判断し(ステップS1232)、マウス入力であれば、さらにボタンOFFであるかを判断し(ステップS1233)、ボタンOFFであれば、文字描画ウィンドウ上のペンタッチ座標が通知され、最初のタッチからペンデタッチまでの座標を1単位として保存し(ステップS1234)、前回座標と入力座標間をペンに設定されている色、太さにより線描画する(ステップS1235)。ステップS1233においてボタンOFFであれば、添削文書を表示する文書作成プログラムから添削文書の左上原点座標(DX,DY)、幅(DW)、高さ(DH)、文書ページ番号(P)を取得する(ステップS1236)。さらに画面幅(SW)、画面高さ(SH)を取得する(ステップS1237)。続いて、2ページの表示であるかを判断し(ステップS1238)、2ページの表示であれば、文書2領域描画有りかを判断する(ステップS1239)。つまり、((DH−DY)<SH)である場合、保存したマウス座標の中に( Y (DH−DY) )があるか検索する。続いて、ストロークデータのマウス座標を文書座標に変換し(ステップS1240)、文書ページ番号(P+1)のストロークデータとして文書添削ファイルへ保存する(ステップS1241)。さらに((DH−DY)<SH)である場合、保存したマウス座標の中に( Y < (DH−DY) )があるか検索する(ステップS1242)。さらにストロークデータのマウス座標を文書座標に変換し(ステップS1243)、文書ページ番号(P)のストロークデータとして文書添削ファイルへ保存する(ステップS1244)。
つぎに、図93のフローチャートを参照し、文字消去制御について説明する。消しゴムの最初のペンタッチ座標が引数として渡される。まず、文字描画ウィンドウの左上原点座標(X,Y)、幅(W)、高さ(H)を取得し(ステップS1251)、添削文書を表示する文書作成プログラムから添削文書の左上原点座標(DX,DY)、幅(DW)、高さ(DH)、文書ページ番号(P)を取得する(ステップS1252)。続いて、文書添削ファイルから文書ページ番号に対するストロークデータを入力し(ステップS1253)、画面幅(SW)、画面高さ(SH)を取得する(ステップS1254)。続いて、2ページ表示であるかを判断し(ステップS1255)、2ページ表示であれば、すなわち、(DH―DY<SH)である場合、(文書ページ番号+1)ストロークデータを入力する(ステップS1256)。さらに文書座標(ストローク座標)を画面座標に変換する(ステップS1257)。マウス入力の有無を判断し(ステップS1258)、文字描画ウィンドウ上の座標を入力する。続いて、ボタンOFFであるかを判断し(ステップS1259)、ボタンOFFでなければ、カーソル領域を算出し(ステップS1260)、画面座標変換したストロークデータにカーソル領域の座標が存在するか検索する(ステップS1261)。さらにカーソル領域有りであるかを判断し(ステップS1262)、カーソル領域有であれば、カーソル領域の画面に表示されている手書き文字を消去し(ステップS1263)、カーソル領域のストロークデータを削除(更新)する(ステップS1264)。ステップS1259においてボタンOFFでなければ、消去により修正されたストロークデータの画面座標を文書座標(ストローク座標)へ変換し(ステップS1265)、ストロークデータを文書添削ファイルの文書ページ番号に対するデータと入れ替える(ステップS1266)。
つぎに、図94のフローチャートを参照し、文書添削モード設定制御について説明する。まず、「文書添削の設定」ダイアログボックスを表示し(ステップS1271)、カレント設定値を保存する(ステップS1272)。その後、設定値入力であるかを判断する(ステップS1273)。ダイアログボックスの設定が確定したら入力されるものとする。設定値入力であれば、さらに設定値が文字描画太さであるかを判断し(ステップS1274)、文字描画太さであれば、文字描画太さを保存する(ステップS1275)。ステップS1275において文字描画太さでなければ、さらに設定値が文字描画色であるかを判断し(ステップS1276)、文字描画色であれば、その文字描画色を保存する(ステップS1277)。ステップS1276において文字描画色でなければ、設定値が消しゴム長であるかを判断し(ステップS1278)、消しゴム長であれば、その消しゴム長を保存する(ステップS1279)。ステップS1278において消しゴム長でなければ、設定値が通常表示倍率であるかを判断し(ステップS1280)、通常表示倍率であれば、その通常表示倍率を保存する(ステップS1281)。ステップS1280において通常表示倍率でなければ、さらに設定値が並列表示倍率であるかを判断し(ステップS1282)、並列表示倍率であれば、その並列表示倍率を保存する(ステップS1283)。ステップS1282において並列表示倍率でなければ、設定値がページ捲りモードであるかを判断し(ステップS1284)、ページ捲りモードであれば、ページ捲りモードを保存する(ステップS1285)。ステップS1284においてページ捲りモードでなければ、さらにキャンセルであるかを判断し(ステップS1286)、キャンセルであれば、カレント設定値を復元し(ステップS1287)、ステップS1289に進む。キャンセル後保存値を復元する。ステップS1286においてキャンセルでなければ、さらにこの文書添削モードの設定がOKであるかを判断し(ステップS1288)、OKであれば、文書添削の設定ダイアログを消去する(ステップS1289)。