説明

ページ分割されたコンテンツを表示し、それと対話するための方法およびシステム

【課題】ホストプログラムが文書コンテンツを表示できるようにする方法を提供する。
【解決手段】本発明に係る文書閲覧コントロール(204)は、別のコンピュータプログラムによってホストされて、そのプログラムに、コンテンツとのユーザ対話を可能にすることを含む文書閲覧機能を提供する。インタフェースが、スクロール(441)、ズーム(442)、発見(443)、レイアウト(444)、コピーなどを含む文書閲覧機能へのプラグインアクセスをプログラムに提供する。本発明では、前記インタフェースを介してプロパティを取り出し、設定することができ、コマンドを発行することができる。結果として、任意のプログラムが一貫性のある方式で文書閲覧機能を提供することができる。さらに、スタイルなどを介して、デフォルト機能を非アクティブ化および/またはオーバーライドして、文書ビューアをカスタマイズおよび/または拡張することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータに関し、より詳細には、コンピュータシステム上でコンテンツを表示することに関する。
【背景技術】
【0002】
コンピュータシステムの最も一般的な使用法の1つは、文書のコンテンツを表示することである。現代のコンピュータシステムおよびプログラムは、文書の閲覧において大きなフレキシビリティを提供する。これには、文書中のハイパーリンクされた位置へのジャンプ、コンテンツのズームインおよびズームアウト、ユーザが所望のページ番号を示すことによって所望のページにジャンプできるようにすること、スクロールおよびキーボードキーの使用によって文書をナビゲートできるようにすること、ならびにその他多くの文書閲覧オプションを実施できるようにすることが含まれる。
【0003】
しかし、ページ分割されたコンテンツを表示したいアプリケーションプログラム開発者は、通常、独自の文書閲覧機能を提供するためのコードを書く。これは、一部には、今までは一般に開発者がそのような閲覧機能を提供する方法が他になかったからだが、また、種々のタイプのアプリケーションプログラムおよびコンテンツがあり、アプリケーション開発者が自身の特定プログラムと表示コンテンツのタイプとに対して意味をなすフィーチャ(feature)を提供したいと思うからでもある。
【0004】
同時に、コンテンツ閲覧コード(content-viewing code)が提供する機能(functionality)およびフィーチャの多くは、プログラム間で共通である。例えば、ズーム、スクロール、テキスト検索などは、ブラウザ、ワードプロセッサ、文書リーダ、および他のプログラムにみることができる。これらのフィーチャをあらゆるアプリケーション中に別個にコード化することは、非常に非効率的であり、また、多くのカスタムコードがあり、したがってより多くのバグがある可能性が高いという点で、一般に堅牢性が劣る。さらに、このことは、様々なアプリケーションがそれぞれ独自のコンテンツ閲覧方式を提供するという点で、不整合につながる。この結果、ユーザは、単にコンテンツを見るだけのために、多くの異なるタイプのプログラムおよびそれらのユーザインタフェースを学習しなければならない。ユーザには別のプログラムによって提供されるのと同じフィーチャに見えるものでも、実際にはまったく異なる動作をすることもある。同様に、キーの組合せおよび/またはファンクションキーはしばしば、あるプログラムと次のプログラムとでは異なる意味を有する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
文書閲覧機能およびフィーチャが複数のプログラムにわたって一貫性および堅牢性を有するように、プログラムが共通の文書閲覧機能およびフィーチャを備えるための方法が必要とされている。同時に、開発者が望むなら何らかのレベルのカスタマイズを追加して、文書閲覧が所与のプログラム中でどのように動作するかを変更できるように、このような解決法はいずれも拡張可能であるべきである。
【課題を解決するための手段】
【0006】
簡潔に言えば、本発明は、文書ビューア(document viewer)がコントロール中で(in a control)提供される方法およびシステムを提供し、コントロールは、ホスティングプログラムが文書ビューアの機能を備え、それを拡張することができるようにするアプリケーションプログラミングインタフェースおよびメソッドを有する。文書ビューアコントロールは、ページレイアウトと、ナビゲーションと、適切にフォーマットされた任意のコンテンツに対する一般的なユーザ対話の管理とを担う。機能は、印刷、キーワード発見(keyword find)、プロポーショナルズーム、コンテンツフローのマルチパスレイアウト、および/または、コンテンツのナビゲーションを含む。ホスティングプログラムは、望まれないフィーチャのいずれかを選択的に非アクティブ化することができ、利用可能だがデフォルトではアクティブでないフィーチャをアクティブ化することができ、文書ビューアコントロールに追加のフィーチャを補うこともできる。
【0007】
ホストプログラムは、文書閲覧コントロール(document viewing control)を使用して、その閲覧領域にコンテンツを表示する。ある文書閲覧コントロールはデフォルトのユーザインタフェースを提供するが、このユーザインタフェースは一般に、上部にツールバー領域を備え、その下にコンテンツ閲覧領域(ビューポート)を備える。ツールバー領域では、文書閲覧コントロールは、1つまたは複数のボタンや、文書閲覧方式を管理するための他の対話式項目(interactive item)など、ユーザインタフェース要素を表示することができる。スクロールバーもまた設けられる。デフォルトで、スクロール、ならびにズーム、発見(find)(テキスト検索)、およびコピーのために、共通の文書対話機能が、ツールバーまたはメニューを介してアクティブ化されるコマンドとして提供される。印刷を提供することもできる。ホスティングプログラムは、すべてのデフォルト文書ビューアフィーチャの一部を選択的に使用することができ、かつ/または、デフォルトで使用可になっていないフィーチャおよび機能をアクティブ化することができる。例示的なツールバー領域の1つは、メニューボタン、ズームインボタン、ズームコンボボックス、ズームアウトボタン、コピーボタン、および発見ボタンを提供する。
【0008】
例示的な一実装形態では、文書閲覧コントロールは、パブリックメソッドを介していくつかのプロパティおよびコマンドを公開する。文書閲覧コントロールは、文書閲覧機能を実施するための他のコントロールを含むことができる。例えば、スクロール動作を扱うためのスクロールコントロール、ズームを扱うためのズームコントロール、合致するテキストをテキストコンテンツ中で検索するための発見コントロール、ユーザがナビゲートできるようにページのグリッドをレイアウトするためのレイアウトコントロール、および、メニュー関連の機能を扱うためのメニューコントロールを含むことができる。
【0009】
プログラムに返すことのできるプロパティは、コンテンツ関連データ、ページカウントデータ、最初の可視ページのデータ、最後の可視ページのデータ、水平オフセットデータ、垂直オフセットデータ、エクステント横幅データ、エクステント縦幅データ、ビューポート横幅データ、ビューポート縦幅データ、ページ境界が表示されるかどうかを示すデータ、ズームパーセンテージデータ、グリッド列カウントデータ、垂直ページ間隔データ、水平ページ間隔データ、文書の最初かどうかを示すデータ、文書の最後かどうかを示すデータ、文書をズームインできるかどうかを示すデータ、文書をズームアウトできるかどうかを示すデータ、および、ツールバー状態を示すデータを含むことができる。プログラムによって設定することのできるプロパティは、コンテンツ関連データ、最初の可視ページのデータ、水平オフセットデータ、垂直オフセットデータ、ページ境界表示データ、ズームパーセンテージデータ、グリッド列カウントデータ、垂直ページ間隔データ、水平ページ間隔データ、および、ツールバー状態を変更するためのデータを含むことができる。コマンドは、ツールバートグル(toggle)コマンド、グリッド列カウントに合わせるコマンド、文書リフロー(reflow)コマンド、サムネイルビューコマンド、横幅に合わせたビューコマンド、および、縦幅に合わせたビューコマンドを含む。
【0010】
文書閲覧コントロールは、コンテンツを表示する必要があるときは常にデフォルトで自動的に文書ビューアとして提供することができる。プログラムは、デフォルトの文書閲覧コントロールを、それ自体のカスタマイズされた文書閲覧コントロールでオーバーライドすることができる。文書閲覧コントロールはスタイル化(styled)することができ、したがって、望むように文書ビューアを表示させるには、文書ビューアの特性を1度指定するだけでよい。アプリケーションプログラムは、単にスタイルを介してどのフィーチャが欲しいかを記述すればよく、そのスタイルを備えた文書ビューアが指定どおりに表示される。スタイルには名前を付けることができ、それによりプログラムは、文書ビューアの種々のスタイルを定義することができ、次いで、プログラム実行中の適時にどのスタイルが使用されるかを変えることができる。
【0011】
その他の態様は、以下の詳細な記述を図面と共に読めば明らかになるであろう。
【図面の簡単な説明】
【0012】
【図1】本発明を組み込むことのできるコンピュータシステムを表すブロック図である。
【図2】本発明の様々な態様による、文書閲覧コントロールをプログラムによってホストすることのできる例示的な構成を表す図である。
【図3】本発明の様々な態様による、文書閲覧コントロールとの対話で使用されるユーザインタフェース要素を示す例示的なスクリーンショット表現の図である。
【図4】本発明の様々な態様による、例示的な文書閲覧コントロールが様々な他のコントロールを含む構成を示すブロック図である。
【図5】本発明の様々な態様による、スクロール関連のインタフェースを含めたグリッドレイアウトに関する例示的なレイアウトクラスを表す図である。
【発明を実施するための形態】
【0013】
(例示的な動作環境)
図1に、本発明を実施することのできる適切なコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲についてどんな限定を意味するものでもない。またコンピューティング環境100は、この例示的な動作環境100に示すコンポーネントのいずれか1つまたは組合せに関してどんな依存や要件を有するとも解釈されるべきではない。
【0014】
本発明は、その他多くの汎用または専用コンピューティングシステム環境または構成でも機能する。本発明と共に使用するのに適するであろう周知のコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロコントローラベースのシステム、セットトップボックス、プログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されない。
【0015】
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで述べることができる。一般に、プログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。
【0016】
図1を参照すると、本発明を実施するための例示的なシステムは、コンピュータ110の形の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、処理ユニット120と、システムメモリ130と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121とを含めることができるが、これらに限定されない。システムバス121は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、および、メザニンバスとも呼ばれるPCI(Peripheral component Interconnect)バスが含まれる。
【0017】
コンピュータ110は通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ110からアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方がこれに含まれる。限定ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)、または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータ110からアクセスできる他の任意の媒体が含まれるが、これらに限定されない。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構などの被変調データ信号に組み入れるものであり、任意の情報送達媒体がこれに含まれる。用語「被変調データ信号」は、信号中の情報が符号化される形で1つまたは複数の特性が設定または変更される信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体と、音響(acoustic)、無線周波数、赤外線などの無線媒体および他の無線媒体とが含まれる。以上のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【0018】
システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。ROM131には通常、起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)133が記憶されている。RAM132は通常、処理ユニット120からすぐにアクセス可能な、かつ/または処理ユニット120が現在作用している、データおよび/またはプログラムモジュールを含む。限定ではなく例として、図1には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示す。
【0019】
コンピュータ110は、その他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例に過ぎないが図1には、取外し不可能な不揮発性の磁気媒体に対して読み書きするハードディスクドライブ141と、取外し可能な不揮発性の磁気ディスク152に対して読み書きする磁気ディスクドライブ151と、CD ROMや他の光媒体など取外し可能な不揮発性の光ディスク156に対して読み書きする光ディスクドライブ155を示す。この例示的な動作環境で使用できる他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体RAM、固体ROMなどが含まれるが、これらに限定されない。ハードディスクドライブ141は通常、インタフェース140などの取外し不可能メモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インタフェース150などの取外し可能メモリインタフェースでシステムバス121に接続される。
【0020】
上述し、図1に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶をコンピュータ110に提供する。例えば図1には、ハードディスクドライブ141がオペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147が少なくとも異なるコピーであることを示すために、異なる番号を付けてある。ユーザは、キーボード162やポインティングデバイス161(マウス、トラックボール、またはタッチパッドと一般に呼ばれる)などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナ、ハンドヘルドPCまたは他の筆記タブレットのタッチセンシティブスクリーンなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)など、他のインタフェースおよびバス構造で接続されてもよい。モニタ191または他のタイプの表示デバイスも、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、スピーカ197やプリンタ196など、その他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース195を介して接続することができる。
【0021】
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、図1にはメモリ記憶デバイス181しか示されていないが通常は、コンピュータ110に関して上述した要素の多くまたはすべてを備える。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでよくみられる。
【0022】
LANネットワーキング環境で使用されるときは、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるときは、コンピュータ110は通常、インターネットなどのWAN173を介した通信を確立するためのモデム172または他の手段を備える。モデム172は内蔵でも外付けでもよく、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図1には、リモートアプリケーションプログラム185がメモリデバイス181上にあるのが示されている。図示したネットワーク接続は例であり、コンピュータ間で通信リンクを確立するための他の手段を使用してもよいことは理解されるであろう。
【0023】
(ページ分割されたコンテンツの表示および対話)
本発明は一般に、コントロールとして提供される文書ビューアを対象とし、これは本質的に、別のプログラムによってホストされてそのプログラムに一定の機能を提供することのできるオブジェクトである。文書ビューアコントロールは、ページレイアウトと、ナビゲーションと、適切にフォーマットされた任意のコンテンツに対する一般的なユーザ対話の管理とを担う対話式閲覧解決(interactive viewing solution)を提供する。例えば一実施形態では、文書ビューアコントロールは、iDocumentPaginatorインタフェースを実装する任意のコンテンツの閲覧、ならびに、文書ビューアコントロールを実装するカスタム解決を可能にする。
【0024】
本発明の様々な態様によれば、文書ビューアコントロールは、オブジェクトとして、適切に構成された任意のアプリケーションプログラムに追加することができる。プログラムは、文書ビューアコントロールを自動的にまたは明示的に、例えばマークアップを介して呼び出すことができる。文書ビューアが追加されると、文書ビューアは、フィーチャのコアセットを提供する。フィーチャのコアセットは、ページグリッドを使用した(サイズ、ならびに/あるいは、固定コンテンツ、および/または利用可能な空間に基づいて調節(例えばテキストラップ)するリフロー可能コンテンツについての)混合フォーマットレイアウト、印刷、キーワード発見、プロポーショナルズーム、コンテンツフローのマルチパスレイアウト、および/または、コンテンツのナビゲーションを含む。ホスティングプログラムは、望まれないフィーチャのいずれかを選択的に非アクティブ化することができ、利用可能だがデフォルトではアクティブでないフィーチャをアクティブ化することができ、文書ビューアコントロールに追加のフィーチャを補うこともできる。
【0025】
理解されるであろうが、本発明を実施するための多くの方法が実現可能であり、本明細書ではいくつかの代替方法のみについて述べる。例えば、本発明を主に複合コントロールオブジェクトモデルに関して以下に述べるが、このモデルでは、文書閲覧コントロールはその機能のいくらかを提供するために他のコントロールオブジェクトを含む。しかし、このことは本発明に必須ではなく、文書ビューアが他のオブジェクトを含まず直接に閲覧機能、フィーチャ、および論理を含むモデルなど、他のモデルも実現可能である。したがって本発明は、本明細書に述べるいずれか特定の実施例または実装形態に限定されず、コンピューティング一般における利益および利点を提供する様々な方法で使用することができる。
【0026】
図2に移ると、本発明の様々な態様により本発明が動作することのできる例示的な構成を表すブロック図が示されている。この構成は、ホスト(例えばアプリケーション)プログラム200と文書閲覧コントロール204とを備え、文書閲覧コントロール204は、ビューポート210と呼ばれるその閲覧領域にコンテンツを表示する。本明細書では、文書は本質的にどんなタイプの可視コンテンツをも含み、したがってテキスト、グラフィックス、動画(animated)テキストおよび/またはグラフィックス、ビデオ、あるいはこれらの任意の組合せを含むことができる。ホストプログラム200は、図1のコンピュータシステム110などのコンピュータシステム上で実行されるコンピュータプログラムを含み、従来のアプリケーションプログラム、オペレーティングシステムコンポーネントまたはユーティリティ、別のコントロールなどとすることができる。
【0027】
文書閲覧コントロール204は、一実装形態では文書ビューア(DocumentVewer)という名称であり、デフォルトのユーザインタフェースを提供する。このユーザインタフェースは一般に、上部にツールバー領域212を備え、その下にコンテンツ閲覧領域(ビューポート210)を備える。ツールバー領域212では、文書閲覧コントロール204は、1つまたは複数のボタンや、文書閲覧方式を管理するための他の対話式項目など、ユーザインタフェース要素を表示することができる。図2の例示的な文書ビューアスクリーンショットにはまた、スクロールバーユーザインタフェース要素214も示されており、これは、ユーザがビューポート210内でコンテンツをスクロールできるようにする。
【0028】
例示的な一実装形態では、文書閲覧コントロール204は、例えばナビゲート、発見(テキスト検索)、コピー、およびズームのために、いくつかの共通の文書対話機能をデフォルトで提供する。印刷は、デフォルトで提供することのできるユーザ対話機能の別の例である。本発明の様々な態様に従って、アプリケーションプログラムは、後述するように、単にコントロールを「プラグイン」すればそのデフォルト機能を有することができる。ホストプログラム200は、例えばデフォルトを除去したり、隠したり、使用不可にしたり、かつ/またはオーバーライドしたりすることによって、すべてのデフォルト文書ビューアフィーチャの一部を選択的に使用することができる。ホストプログラム200はまた、デフォルトで使用可になっていないフィーチャおよび機能をアクティブ化することもできる。
【0029】
いくつかのデフォルトフィーチャの例として、図3は、本発明の様々な態様により動作する文書閲覧コントロール204の例示的なビューの1つを示すスクリーンショットである。この表現では、文書閲覧コントロール204のツールバー領域212はツールバー項目320〜325を含み、これらにはメニューボタン320、ズームインボタン321、ズームコンボボックス322、ズームアウトボタン323、コピーボタン324、および発見ボタン325が含まれる。他のボタン(印刷ボタンなど)は表示されていないことに留意されたい。というのは、それらのボタンはデフォルトで提供されないからであり、あるいはデフォルトで提供されるとしても、対応する機能を提供したくないホストプログラムによって非アクティブ化されているからである。さらに、文書閲覧コントロール204および/またはホストプログラム200は、例えば追加のツールバー項目を加えたり、いずれかの既存のツールバー項目を除去したりできるようにすることによって、ユーザがツールバーをカスタマイズするのを可能にするインタフェースを提供することができることにも留意されたい。
【0030】
図4に一般に表す例示的な一実装形態では、文書閲覧コントロール204は、インスタンス化されホストされ実行されたときにパブリックメソッド440を使用していくつかのプロパティおよびコマンドを公開することのできるオブジェクトを含む。パブリックメソッド440を使用して、文書閲覧コントロール204は、それ自体の機能へのアクセスを提供することができ、また、他の文書閲覧機能を実施するための、含まれている他のコントロール441〜446へのアクセスを提供することもできる。例えば、文書閲覧コントロール204は、スクロール動作を扱うためのスクロールコントロール441、ズームを扱うためのズームコントロール442、合致するテキストをテキストコンテンツ中で検索するための発見コントロール443、ユーザがナビゲートできるようにページのグリッドをレイアウトするためのレイアウトコントロール444、および、ツールバーが最小化されているときを含めてユーザが対話式にコマンドを発行するための代替方法を提供するなど、メニュー関連の機能を扱うためのメニューコントロール445を含むことができる。スクロール、ズーム、およびレイアウトは、それぞれ、「Method and System for Navigating Paginated Content in Page-Based Increments」、「Method and System for Zooming in and out of Paginated Content」、及び「Method and System for Laying Out Paginated Content for Viewing」という名称の同時係属の米国特許出願において一般に述べられており、これらの各出願は、本発明の譲受人に譲渡され、本出願と同時に出願され、参照により本明細書に組み込まれる。図4でブロック446によって表すように、その他のコントロール(例えば「コピー」操作を扱うためのコントロール)が文書閲覧コントロール204に含まれてもよい。図4には特に示していないが、これらのコントロール441〜446のいくつかまたはすべては、それ自体でパブリックに公開されてもよいことに留意されたい。
【0031】
図3に表す例示的な実装形態に戻ると、文書ビューアのツールバー領域212は、ズーム、コピー、および発見などの文書閲覧コントロールを公開するユーザインタフェース項目を提供する。これらのいくつかは、文書閲覧コントロール204がネイティブに扱うコマンドに結び付けられるが、ズームなどのいくつかは、文書閲覧コントロール204のプロパティにデータバインドされる。ツールバーは、例えば「ToggleToolbar」コマンドを介して、最小化および最大化することができる。ツールバーは、最大化されたときは、ツールバーコントロールを内部に有するパネルを備える。最小化された状態では、メニュー項目以外は見えなくなる。
【0032】
ツールバー中の各コントロールボタンには、アクセシビリティ(accessibility)およびテスティング(testing)を容易にするために、識別子および「タブ」順序付けが与えられる。例示的な左から右への順序付けでは、ツールバー中の第1のユーザインタフェース要素はメニューボタンであり、メニューボタンは、最小化されたとき、最大化されたツールバー中で通常利用可能なものと同じコマンドセットを公開する。これらのメニュー項目(およびそれらに関連するコマンド)には、コピー−ApplicationCommands.Copyと、発見−ApplicationCommands.Findと、印刷−ApplicationCommands.Printと、ズームイン−NavigationCommands.IncreaseZoom.と、ズームアウト−NavigationCommands.DecreaseZoomと、表示/非表示ツールバー−document viewing control.ToggleToolbarとを含めることができる。メニューボタンは、メニューコントロールのプロパティ(例えばIsMouseOverおよびIsMousePressed)に対してPropertyTriggersを使用することによって、マウスアクティビティに基づいて外観を変更することができる。これらのコマンドのいくつかまたはすべては、標準コマンドのライブラリに結び付けることができる。
【0033】
ズームアウトボタンがクリックまたはメニューを介して作動されると、文書閲覧コントロールは現在の文書をズームアウトする。同様に、ズームインボタンが作動されると、文書閲覧コントロールは現在の文書をズームインする。ズームコンボボックスは、様々な事前定義済みの「ズームストップ」および他のズーム関連設定(例えば「100%」、「50%」、「1ページ」など)を含む。文書閲覧コントロールのズームコンボボックスは、DocumentViewerのStyle中で実装することができ、DocumentViewerのDocumentLayoutプロパティをコンボボックスのSelectedItemValueプロパティにデータバインドする。あるいは、開発者は単に、コマンドまたはプロパティを使用して、グリッド列の数を直接設定し、かつ/またはズームパーセンテージを設定してもよい。コンボボックス中の各エントリは、型DocumentLayoutのスタイル化されたデータ項目とすることができ、それにより、コンボボックス中の項目が選択されたとき、文書閲覧コントロールのページレイアウトを更新することができる。
【0034】
発見ボタンを作動すると、文書閲覧コントロールの発見ダイアログが呼び出される。コピーは、テキストエディタ(例えば、文書閲覧コントロール204に付属のもの)が、ユーザの現在マークされている選択をクリップボードにコピーするようにする。印刷は、印刷ダイアログを呼び出す。
【0035】
ビューポート210と呼ばれる、文書閲覧コントロールのコンテンツ領域は、レイアウトコントロールによってグリッド中にレイアウトされた1つまたは複数のページ列の並びで文書のコンテンツを表示する。この領域中のユーザインタフェース要素には、水平および/または垂直スクロールバーを含めることができる。コンテキストメニュー、例えば、ツールバー中のメニューボタンと同じ項目を含み、同じコマンドに結び付けられたコンテキストメニューを設けることもできる。
【0036】
文書閲覧コントロールは、一実装形態において、ScrollViewerと呼ばれるスクロールコントロール441を介して、文書閲覧コントロールのコンテンツにスクロール機能を提供する。(例えば、DocumentGridという名称の)レイアウトコントロール444は、文書閲覧コントロールのScrollViewerによって使用されるIScrollInfoオブジェクトであり、文書コンテンツをフレキシブルな方式で表示することを担う。DocumentGridは内部コントロールであって、文書閲覧コントロールのStyle中で直接指定することはできないことに留意されたい。図5に一般に表すように、DocumentGridは、IDocumentScrollInfo(これはIScrollInfoを実装する)を実装し、ScrollViewerの子としてセットアップされる。ScrollViewerは、スクロールに基づく情報を、IScrollInfoインタフェースを介してDocumentGridに通信する。同様に、文書閲覧コントロールは、ページナビゲーション/レイアウトに基づく情報を、IDocumentScrollInfo(またはIDocumentPresentationInfo)インタフェースを介してDocumentGridに通信する。文書閲覧コントロールは、IDocumentPresentationInfoプロパティを設定して、DocumentGridのズームやオフセットなどを更新し、DocumentGridは、DocumentGrid上で変化したプロパティに文書閲覧コントロールを同期させておくために、文書閲覧コントロールのInvalidatePresentationInfo()メソッドを呼び出す。
【0037】
本発明の様々な態様により、文書閲覧コントロールはいくつかのプロパティおよびコマンドを公開する。以下の表は、文書閲覧コントロール204の一実装形態により公開することのできるいくつかの例示的なプロパティおよびコマンドを含む。
【0038】
【表1】

【0039】
文書閲覧コントロール204のプロパティおよびコマンドへは、アプリケーション200からアクセスすることができる。「get」を示すプロパティは読取り可能である。「get」および「set」を示すプロパティは、読取り可能と書込み可能の両方である。本発明の趣旨および範囲を逸脱することなく、他のプロパティおよびコマンドを含めることもでき、かつ/または上記のプロパティおよびコマンドのいくつかを削除または修正することもできることは、容易に理解されるであろう。さらに、前述のプロパティおよびコマンドは例であり、本発明の趣旨および範囲を逸脱することなく他のデータ構造、定義、技法、および方法を使用して文書閲覧コントロール204の様々な態様を実施することができることは、容易に理解されるであろう。
【0040】
以下に、プロパティおよびコマンドについての追加の詳細を提供する。
【0041】
public int PageCount{get;}
PageCountは、文書閲覧コントロール(DocumentViewer)にロードされた現在ページ数を返す。この数は、ページ分割が完了するまで増加し、完了した時点で文書中の総ページ数を示すことになる。
【0042】
public int FirstVisiblePage{get;set;}
FirstVisiblePageは、照会されると、画面上で見える最初のページを返す。これは、左から右へのコンテンツの場合は、一番左上の見えるページであり、あるいは右から左へのコンテンツの場合は、一番右上の見えるページである。設定されると、文書閲覧コントロールはIDocumentPresentationInfo.MakePageVisible()を呼び出し、これは、可能な場合に、指定されたページを、見える一番左上(または一番右上)のページにすることを試みる。これは常に可能なわけではなく(例えば文書の上部または下部で、あるいは複数列のレイアウトの場合)、したがって、FirstVisiblePageに割り当てられた値が、読み返された値と同じではないことになる状況があり得る。
【0043】
FirstVisiblePageは、ユーザインタフェースへのデータバインドをより有用にするために、インデックスは1で始まる。1未満の値、またはPageCountよりも大きい値の場合は、値は範囲内に切り詰められる。FirstVisiblePageを設定すると、LastVisiblePageが更新される。
【0044】
public int LastVisiblePage{get;}
LastVisiblePageは、照会されると、画面上で見える最後のページを返す。これは、左から右へのコンテンツの場合は、一番右下の見えるページであり、あるいは右から左へのコンテンツの場合は、一番左下の見えるページである。LastVisiblePageは、ユーザインタフェースへのデータバインドをより有用にするために、インデックスは1で始まる。1未満の値、またはPageCountよりも大きい値の場合は、値は範囲内に切り詰められる。
【0045】
public double HorizontalOffset{get;set;}
HorizontalOffsetは、現在のページレイアウトが与えられた場合の、文書中の現在の水平位置をピクセル単位で示す。HorizontalOffsetは、インデックスは0で始まる。0未満の値、またはExtentWidthよりも大きい値は、範囲内に切り詰めることができる。
【0046】
public double VerticalOffset{get;set;}
VerticalOffsetは、現在のページレイアウトが与えられた場合の、文書中の現在の垂直位置をピクセル単位で示す。VerticalOffsetは、インデックスは0で始まる。0未満の値、またはExtentHeightよりも大きい値は、範囲内に切り詰めることができる。
【0047】
public double ExtentWidth{get;}
ExtentWidthは、文書レイアウトの現在の横幅を示す。
【0048】
public double ExtentHeight{get;}
ExtentHeightは、文書レイアウトの現在の縦幅を示す。
【0049】
public double ViewportWidth{get;}
ViewportWidthは、DocumentViewerのコンテンツ領域(ビューポート)の現在の横幅を示す。
【0050】
public double ViewportHeight{get;}
ViewportHeightは、DocumentViewerのコンテンツ領域(ビューポート)の現在の縦幅を示す。
【0051】
public bool ShowPageBorders{get;set;}
ShowPageBordersは、開発者が文書閲覧コントロール中で表示されているページの周りで「Drop Shadow」を使用可または使用不可にできるようにする。
【0052】
public double ZoomPercentage{get;set:}
これは、UIへのデータバインドを単純なタスク(例えば、ユーザがズームを設定できるようにする単純なテキストボックスの生成)にするために公開される「便利(convenience)」プロパティである。最後のZoomPercentage設定またはページフィット呼出しに基づいて、有効なズームパーセンテージを返す。5%未満または1000%よりも大きい値は、範囲内に切り詰めることができる。
【0053】
ZoomPercentageプロパティはまた、「%」符号付きの列を解析することのできるTypeConverterに関連付けられることになる。このようにして、データバインドされたUI(例えばTextBox)は、ZoomPercentageの値を「100」ではなく「100%」と表示することができる。さらに、「%」符号をマークアップ中で使用することも可能にする。すなわち、<DocumentViewer ZoomPercentage=”100%”/>となる。
【0054】
public int GridColumnCount{get;set;}
これは、UIへのデータバインドを単純なタスク(例えば、表示されるページの表示列の数をユーザが設定できるようにする単純なテキストボックスの生成)にするために公開される「便利」プロパティである。表示されるページの列の数を返す。設定されると、指定数の列がレイアウトされるようにする(ただしビューには収まらない)。文書内の1未満またはページ数よりも大きい値は、範囲内に切り詰めることができる。
【0055】
public IDocumentPaginator Content{get;set;}
コンテンツは、IAddChildインタフェースを介して文書閲覧コントロールにロードされた現在のIDocumentPaginatorコンテンツツリーを公開し、コンテンツの操作を可能にする。コンテンツが追加または除去されると、コンテンツは文書閲覧コントロールのLogicalTreeから追加または除去される。しかしこれは、文書閲覧コントロールがスタイル化を介して呼び出されたときには当てはまらない。その場合は何も行われず、文書閲覧コントロールがスタイル化を介して呼び出されたかどうか判定する現在のチェックは、「if(this.StyledParent==null)」である。
【0056】
public bool IsAtStart{get;}
文書閲覧コントロール(DocumentViewer)が現在の文書の上部にあるかどうかを示す。PropertyTriggersを使用してナビゲーションボタンを使用可/使用不可にするために、DocumentViewerのStyle中で有用である。
【0057】
public bool IsAtEnd{get;}
文書閲覧コントロールが現在の文書の最下部にあるかどうかを示す。PropertyTriggersを使用してナビゲーションボタンを使用可/使用不可にするために、DocumentViewerのStyle中で有用である。
【0058】
public bool CanZoomIn{get;}
文書閲覧コントロールがこれ以上ズームインできる(すなわち現在、最高の「ズームストップ」でない)かどうかを示す。PropertyTriggersを使用してズームボタンを使用可/使用不可にするために、DocumentViewerのStyle中で使用される。
【0059】
public bool CanZoomOut{get;}
文書閲覧コントロールがこれ以上ズームアウトできる(すなわち現在、最低の「ズームストップ」でない)かどうかを示す。PropertyTriggersを使用してズームボタンを使用可/使用不可にするために、DocumentViewer のStyle中で使用される。
【0060】
public bool IsToolbarMaximized{get;set;}
ツールバーの現在状態、すなわち、最小化、最大化、または使用不可にされているかどうかを示す/設定する。ツールバーをその報告された状態に基づいて表示/非表示にするために、DocumentViewerのStyle中で使用される。
【0061】
(コマンド)
public Command ToggleToolbar
このコマンドを呼び出すと、文書閲覧コントロール(DocumentViewer)は、「IsToolbarMaximized」プロパティを真と偽の間でトグルする。Styleの作成者がIsToolbarMaximizedプロパティを利用することを選択している場合、これは、DocumentViewerのStyle中のPropertyTriggersに基づいてUIの変化を引き起こす。
【0062】
public Command FitToGridColumnCount
このコマンドは、現在の列レイアウト(GridColumnCountによって指定されている)が、ちょうど現在のビューポートに収まるようにする。
【0063】
public Command ReflowDocument
このコマンドは、文書中の任意のリフロー可能コンテンツが再ページ分割されて現在のビューポートに収まるようにするとともに、現在指定されている列カウントを表示する。
【0064】
public Command ViewThumbnails
DocumentViewer.DocumentLayoutを、DocumentLayout(DocumentLayoutType.Thumbnail)に設定する。
【0065】
public Command ViewFitToWidth
DocumentViewer.DocumentLayoutを、DocumentLayout(DocumentLayoutType.FitToWidth)に設定する。
【0066】
public Command ViewFitToHeight
DocumentViewer.DocumentLayoutを、DocumentLayout(DocumentLayoutType.FitToHeight)に設定する。
【0067】
(外部コマンド)
文書閲覧コントロール(DocumentViewer)が扱うことになるがそれ自体では実装しない、様々なコマンドがある。例として以下のものが含まれる。
ApplicationCommands.Find
DocumentViewerのFindダイアログを呼び出す。
ApplicationCommands.Print
DocumentViewerのPrintダイアログを呼び出す。
ComponentCommands.ScrollPageUp/Down
DocumentViewerがViewportの上/下によってスクロールするようにする。
ComponentCommands.MoveUp/Down
DocumentViewerが16ピクセル上/下にスクロールするようにする。
ComponentCommands.MoveLeft/Right
DocumentViewerが16ピクセル左/右にスクロールするようにする。
ComponentCommands.MoveToHome/End
DocumentViewerが文書の最初/最後に移動するようにする。
ComponentCommands.ScrollByLine
DocumentViewerが指定行数分、上または下にスクロールするようにする。
NavigationCommands.Zoom
DocumentViewerのズームを指定レベルに設定する。
NavigationCommands.IncreaseZoom/DecreaseZoom
DocumentViewerがコンテンツ上でズームイン/ズームアウトするようにする。
NavigationCommands.GotoNextPage/GotoPreviousPage
DocumentViewerが次/前のページの並びにスクロールするようにする。
【0068】
(DocumentViewerインタフェース実装)
IServiceProvider
文書閲覧コントロールのIServiceProvider実装は、DocumentGridのTextViewサービスを公開して、文書中の基礎をなすテキストへのアクセスを可能にする。
【0069】
IAutomationPatternProvider
文書閲覧コントロールのIAutomationPatternProviderインタフェースは、UIAutomation TextPatternを求める要求を扱い、UIAutomation TextPatternは、表示されている文書のテキストコンテンツにAutomationシステムがアクセスできるようにする。
【0070】
IEnsureVisible
IEnsureVisibleは、開発者が文書中の特定の要素を見えるようにすることを可能にする。これを使用して、ハイパーリンク付け(Hyperlinking)および何らかのアクセシビリティ機能をサポートすることができる。
【0071】
IAddChild
IAddChildは、文書閲覧コントロールの論理ツリーに文書コンテンツを追加することを可能にする。子を1つだけ追加することができ、これはnullでないIDocumentPaginatorでなければならない。これらの基準が満たされない場合は、例外を投げることができる。
【0072】
解釈された(interpreted)マークアップを介してユーザインタフェース要素が表示される一実装形態では、コンテンツを表示する必要があるときは常に、文書閲覧コントロール204はデフォルトで自動的に文書ビューアとして提供される。しかし、プログラムがそれ自体のカスタマイズ文書閲覧コントロールでデフォルト文書閲覧コントロール204をオーバーライドできるようにするための、大きなフレキシビリティが提供される。上記のAPIからわかるように、これは、APIのプロパティの多くを設定できることからもたらされる。
【0073】
文書閲覧コントロールはスタイル化することができ、したがって、望むように文書ビューアを表示させるには、文書ビューアの特性を1度指定するだけでよい。例として、以下のマークアップを考えてみる(DVはDocumentViewerを表す)。
【0074】
【表2】

【0075】
一般に、デフォルトからの何らかの変更が望まれる場合、開発者は、文書ビューアが所望のプログラムリソースであることを指定して、所望の1つまたは複数の変更を示すだけでよい。上記のマークアップは、黄色の背景を有する、(主として)デフォルトの文書ビューアになる。ボタンやハイパーリンクなども同様に変更することができる。一実装形態では、コンテンツおよびレイアウトをスタイル化できない場合があり、有効な文書閲覧コントロールStyleは、document viewing control.ContentHost付属プロパティでマークされたScrollViewerコントロールを含む必要があることに留意されたい。Styleが適用されたことを文書閲覧コントロールが検出したとき、文書閲覧コントロールは、視覚ツリーを辿って、このマークされた要素を検索する。このマークされた要素を見つけることができなかった場合、またはこのマークされた要素がScrollViewerでない場合は、例外を投げる。正しいScrollViewerが見つかった場合は、文書閲覧コントロールはDocumentGridコントロールをインスタンス化し(レイアウトのために)、これをScrollViewerのContentにし、DocumentGridコントロールがScrollViewerに通信できるようにする。
【0076】
このように、スタイルプロパティは、ユーザの望むように文書ビューアを表示させるために利用可能である。アプリケーションプログラムは、単にスタイルを介してどのフィーチャが欲しいかを記述すればよく、そのスタイルを備えた文書ビューアが指定どおりに表示される。ただし、コンテンツはスタイル化されないことに留意されたい。スタイルは、何らかのレベルのズームインおよびズームアウトをサポートするかどうかや、表示するページの列の数などのフィーチャを指定することができる。APIはこのようにする能力を提供するものの、所与のプログラムは、利用可能なすべてのフィーチャは使用しない場合もある。したがって例えば、スタイル化された文書閲覧コントロールをプログラム中で使用して限定されたフィーチャを提供し、カスタマイズされた文書ビューア、例えばズームオプションがなく「前」および「次」ボタンを備えた単一のページに、ユーザを向けさせることができる。
【0077】
さらに、スタイルには名前を付けることができることにも留意されたい。したがって例えば、プログラムは、文書ビューアの種々のスタイルを定義することができ、次いで、適時にどのスタイルが使用されるかを変えることができる。これは例えば、プログラム中で、ある時は、ある文書ビューアスタイルが「XYZ」文書ビューアに等しいことを指定し、別の時は、使用する文書ビューアが「ABCD」文書ビューアに等しいことを指定するなどによって行うことができる。また、例えば、プログラムは、表示されているコンテンツのタイプによって、使用される文書ビューアを変えることができ、例えば、固定コンテンツはある文書ビューアスタイルを有し、利用可能な空間に基づいて調節(例えばテキストラップ)するリフロー可能コンテンツは異なるスタイル化がなされたビューアを介して表示されてよい。
【0078】
以上の詳細な説明からわかるように、複数のプログラムがプログラムにわたって一貫性および堅牢性を有するようにして文書閲覧機能およびフィーチャを提供できるようにする方法およびシステムが提供される。この方法およびシステムは、カスタマイズ可能であり拡張可能である。
【0079】
本発明は様々な修正および代替構造が可能であり、本発明の例示的ないくつかの実施形態を図面に示し、上に詳細に述べた。しかし、開示した特定の形に本発明を限定する意図はなく、反対に、本発明の趣旨および範囲の内に入るすべての修正、代替構造、および均等物をカバーするものである。

【特許請求の範囲】
【請求項1】
コンピューティング環境において、ホストプログラムが、文書コンテンツコントロール及び表示機能を備えるオブジェクトを介して文書コンテンツを表示できるようにする方法であって、
コンピュータが、オブジェクトをホストプログラムに提供することであって、前記オブジェクトは、
文書コンテンツコントロール及び表示機能を提供する複数のパブリックメソッドと、
スタイル化するためのフラグとを備え、
アプリケーションプログラミングインタフェース(API)及び文書コンテンツクラスを提供し、
前記文書コンテンツクラスは、文書コンテンツを受け取り、含めることを可能にし、
前記APIは、前記ホストプログラムに、前記オブジェクトを介して文書コンテンツの表示をコントロールするためのインタフェースを提供することと、
前記オブジェクトが、前記APIを介して前記ホストプログラムから呼び出しを受け取ることと、
前記ホストプログラムが、前記文書コンテンツクラスのメソッドを使用して、前記オブジェクトにコンテンツを追加することと、
前記オブジェクトが、ツールバーおよびビューポートを備えるデフォルトユーザインタフェースを提供することと、
前記オブジェクトが、前記ビューポート内で文書コンテンツを表示することであって、前記ビューポート及び前記ツールバーは、前記ホストプログラムの表示領域内で表示されることと
を含むことを特徴とする方法。
【請求項2】
前記文書コンテンツを表示することは、表示コンテンツのズームレベルを変更することを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記文書コンテンツを表示することは、前記文書中でスクロールして、コンテンツのを表示を変更することを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記文書コンテンツコントロール及び表示機能は、前記文書中の選択されたコンテンツをコピーすることを含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記文書コンテンツコントロール及び表示機能は、機能呼び出しに応じた文書印刷機能を含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記オブジェクトが、前記APIを介して前記ホストプログラムから呼び出しを受け取ることは、プロパティ値を得るための要求を受け取ることを含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記プロパティ値を得るための要求を受け取ることは、セットのうちの少なくとも1つのプロパティの値を求める要求を受け取ることを含み、前記セットは、コンテンツ関連データ、ページカウントデータ、最初の可視ページのデータ、最後の可視ページのデータ、水平オフセットデータ、垂直オフセットデータ、エクステント横幅データ、エクステント縦幅データ、ビューポート横幅データ、ビューポート縦幅データ、ページ境界が表示されるかどうかを示すデータ、ズームパーセンテージデータ、グリッド列カウントデータ、垂直ページ間隔データ、水平ページ間隔データ、文書の最初かどうかを示すデータ、文書の最後かどうかを示すデータ、文書をズームインできるかどうかを示すデータ、文書をズームアウトできるかどうかを示すデータ、および、ツールバー状態を示すデータを含むことを特徴とする請求項6に記載の方法。
【請求項8】
前記オブジェクトが、前記APIを介して前記ホストプログラムから呼び出しを受け取ることは、プロパティ値を変更する要求を受け取ることを含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記プロパティ値を変更する要求を受け取ることは、セットのうち少なくとも1つのプロパティの値を変更する要求を受け取ることを含み、前記セットは、コンテンツ関連データ、最初の可視ページのデータ、水平オフセットデータ、垂直オフセットデータ、ページ境界表示データ、ズームパーセンテージデータ、グリッド列カウントデータ、垂直ページ間隔データ、水平ページ間隔データ、および、ツールバー状態を変更するためのデータを含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記オブジェクトが、前記APIを介して前記ホストプログラムから呼び出しを受け取ることは、コマンドを受け取ることを含むことを特徴とする請求項1に記載の方法。
【請求項11】
前記コマンドを受け取ることは、セットのうち少なくとも1つのコマンドを受け取ることを含み、前記セットは、ツールバートグルコマンド、グリッド列カウントに合わせるコマンド、文書リフローコマンド、サムネイルビューコマンド、横幅に合わせるビューコマンド、および、縦幅に合わせるビューコマンドを含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記オブジェクトの機能は、デフォルトをオーバーライドすることによってカスタマイズ可能であることを特徴とする請求項1に記載の方法。
【請求項13】
コンピュータによって実行されると、前記コンピュータに請求項1に記載の方法を実行させるコンピュータプログラム。
【請求項14】
前記ホストプログラムは、少なくとも1つのデフォルトフィーチャをオーバーライドすることによって、前記オブジェクトをカスタマイズすることを特徴とする請求項13にコンピュータプログラム。
【請求項15】
前記ホストプログラムは、スタイルを介して文書閲覧コントロールの少なくとも一部をカスタマイズすることを特徴とする請求項14に記載のコンピュータプログラム。
【請求項16】
前記オブジェクトは、文書コンテンツの表示に関連する少なくとも1つの他のコントロールのコントロールセットを含むことを特徴とする請求項13に記載のコンピュータプログラム。
【請求項17】
前記コントロールセットは、スクロール関連コントロール、ズーム関連コントロール、発見関連コントロール、レイアウト関連コントロール、メニュー関連コントロール、およびコピー関連コントロールを含むことを特徴とする請求項16に記載のコンピュータプログラム。
【請求項18】
前記APIは、プロパティおよびコマンドセットへのアクセスを提供し、
前記プロパティは、
コンテンツ関連データ、ページカウントデータ、最初の可視ページのデータ、最後の可視ページのデータ、水平オフセットデータ、垂直オフセットデータ、エクステント横幅データ、エクステント縦幅データ、ビューポート横幅データ、ビューポート縦幅データ、ページ境界が表示されるかどうかを示すデータ、ズームパーセンテージデータ、グリッド列カウントデータ、垂直ページ間隔データ、水平ページ間隔データ、文書の最初かどうかを示すデータ、文書の最後かどうかを示すデータ、文書をズームインできるかどうかを示すデータ、文書をズームアウトできるかどうかを示すデータ、および、ツールバー状態を示すデータを含み、
前記コマンドセットは、
ツールバートグルコマンド、グリッド列カウントに合わせるコマンド、文書リフローコマンド、サムネイルビューコマンド、横幅に合わせるビューコマンド、および、縦幅に合わせるビューコマンドを含むことを特徴とする請求項13に記載のコンピュータプログラム。
【請求項19】
コンピューティング環境において、
1つまたは複数のコンピュータ処理装置と、
前記1つまたは複数のコンピュータ処理装置によって実行されると請求項1に記載の方法を実行するコンピュータ実行可能命令を記憶したシステムメモリと
を備えたことを特徴とするシステム。
【請求項20】
ユーザ対話が、コンテンツの表示を変更することを特徴とする請求項19に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−168959(P2012−168959A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2012−81644(P2012−81644)
【出願日】平成24年3月30日(2012.3.30)
【分割の表示】特願2007−557990(P2007−557990)の分割
【原出願日】平成17年8月25日(2005.8.25)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】