PageWindow

ページウィンドウ (PageWindow) は本のようなレイアウトを作成して自動で表示する手段を提供します。

Summary
PageWindowページウィンドウ (PageWindow) は本のようなレイアウトを作成して自動で表示する手段を提供します。
実装の詳細ページウィンドウは、 ScrollWindow のページサイズセクションで作成するような縦に長いウィンドウに自動的に分割する特殊なウィンドウ要素です。
XML定義
XMLタグ
必須属性
pagesdisplayed(一回に)表示するページ数。
guttersizeのど(ページとページの間)の距離。
childcontentswindow解析される全てのウィンドウをページ内に含む子ウィンドウの名前。
pagenumbertemplateページ数表示に使用する有効なラベル定義の名前。
関数
関数
PageWindowGetNumPagesDisplayed()このページウィンドウが一回に表示するページの数を返します。
PageWindowGetNumPages()childcontentswindow から解析された現在のページの数を返します。
PageWindowSetCurrentPage()表示する左端のページを設定します。
PageWindowGetCurrentPage()現在の左端のページのページ番号を返します。
PageWindowUpdatePages()ページレイアウトを更新するために、全ての子ウィンドウを処理します。
PageWindowClearPageBreaks()改ページウィンドウとして登録された全てのウィンドウをクリアします。
PageWindowAddPageBreak()改ページウィンドウを新たに追加します。このウィンドウは常にページの頭から表示されます。
PageWindowRemovePageBreak()特定のウィンドウの改ページ設定を削除します。
PageWindowClearSplitableWindows()分割可能なウィンドウとして登録された全てのウィンドウをクリアします。
PageWindowAddSplitableWindow()新たな分割可能なウィンドウを追加します。
PageWindowRemoveSplitableWindow()特定のウィンドウの分割可能フラグを削除します。

実装の詳細

ページウィンドウは、 ScrollWindow のページサイズセクションで作成するような縦に長いウィンドウに自動的に分割する特殊なウィンドウ要素です。

各ページは子ウィンドウ要素がそのページにぴったりと収まるよう解析されます。最下部からはみ出た部分は、次のページの頭に送られます。特定のウィンドウ要素を「改ページ」指定することで、常にページの頭から表記する事もできます。

このロジックには二つの例外があります:

  • Label をページ端に付ける場合 : 本のようなレイアウトを生成するのに必要なため、複数のページに渡ってテキストを分割します。
  • PageWindowAddSplitableWindow() を呼び出す事により、明示的にウィンドウを「分割可能」と指定した場合 : この定義は全てのページへ複製されます。

注意

現時点では、ウィンドウ定義だけの重複を引き起こし、サイズと位置情報のみが新しいウィンドウに転送されます。真のクローンとはなっていません。

作成

ページディスプレイを作成するのに、以下の一般的な設定に従って指定することができます。

  • 一回で表示するページ数 (1 to n )
  • ページ間の guttersize (のどのサイズ)。
  • ページ番号の Label 定義 (オプション)。

各ページの幅は、(一回に)表示されるページの数、のどのサイズ、ウィンドウの幅から決定されます。

pageWidth =  windowWidth / ( pagesDisplayed - gutterSize*(pagesDisplayed-1)  )

XML定義

Summary
XMLタグ
必須属性
pagesdisplayed(一回に)表示するページ数。
guttersizeのど(ページとページの間)の距離。
childcontentswindow解析される全てのウィンドウをページ内に含む子ウィンドウの名前。
pagenumbertemplateページ数表示に使用する有効なラベル定義の名前。

XMLタグ

<PageWindow>
....
</PageWindow>

代替グループ

必須属性

pagesdisplayed

(一回に)表示するページ数。

データ型

integer1〜n の数値

デフォルト値

  • 2

guttersize

のど(ページとページの間)の距離。

データ型

integerのどの距離

デフォルト値

  • 0

childcontentswindow

解析される全てのウィンドウをページ内に含む子ウィンドウの名前。

データ型

string有効な子 Window の名前。

デフォルト値

  • ””

pagenumbertemplate

ページ数表示に使用する有効なラベル定義の名前。

データ型

string有効な子 Label の名前。

デフォルト値

  • ””

関数

Summary
関数
PageWindowGetNumPagesDisplayed()このページウィンドウが一回に表示するページの数を返します。
PageWindowGetNumPages()childcontentswindow から解析された現在のページの数を返します。
PageWindowSetCurrentPage()表示する左端のページを設定します。
PageWindowGetCurrentPage()現在の左端のページのページ番号を返します。
PageWindowUpdatePages()ページレイアウトを更新するために、全ての子ウィンドウを処理します。
PageWindowClearPageBreaks()改ページウィンドウとして登録された全てのウィンドウをクリアします。
PageWindowAddPageBreak()改ページウィンドウを新たに追加します。このウィンドウは常にページの頭から表示されます。
PageWindowRemovePageBreak()特定のウィンドウの改ページ設定を削除します。
PageWindowClearSplitableWindows()分割可能なウィンドウとして登録された全てのウィンドウをクリアします。
PageWindowAddSplitableWindow()新たな分割可能なウィンドウを追加します。
PageWindowRemoveSplitableWindow()特定のウィンドウの分割可能フラグを削除します。

関数

PageWindowGetNumPagesDisplayed()

このページウィンドウが一回に表示するページの数を返します。

パラメータ

pageWindowName(string) ページウィンドウの名前。

戻り値

numPagesDisplayed(integer) 一回に表示されるページの数。

local numPagesDisplayed  = PageWindowGetNumPagesDisplayed( pageWindow )

PageWindowGetNumPages()

childcontentswindow から解析された現在のページの数を返します。

パラメータ

pageWindowName(string) ページウィンドウの名前。

戻り値

numPages(integer) 現在表示されているページの数。

local numPages  = PageWindowGetNumPages( pageWindow )

PageWindowSetCurrentPage()

表示する左端のページを設定します。

パラメータ

pageWindowName(string) ページウィンドウの名前。
curPage(integer) 左端のページのページ番号。

戻り値

nil戻り値無し。

メモ

  • 「現在のページ」(curPage)は、画面の左端に表示されるページになります。ページウィンドウで複数ページを表示している場合、numPagesの範囲外の「現在のページ」の値は表示ページの一番最初か一番最後のページのいずれかを取ることができます。

PageWindowSetCurrentPage( "SomePageWindow", 1 )

PageWindowGetCurrentPage()

現在の左端のページのページ番号を返します。

パラメータ

pageWindowName(string) ページウィンドウの名前。

戻り値

curPage(integer) 一番左のページのページ番号。

local curPage   = PageWindowGetCurrentPage( "SomePageWindow" )

PageWindowUpdatePages()

ページレイアウトを更新するために、全ての子ウィンドウを処理します。

パラメータ

pageWindowName(string) ページウィンドウの名前。

戻り値

nil戻り値無し。

メモ

  • レイアウトに影響が及ぶ可能性があるページウィンドウの内容変更をする時は、必ずこの関数を呼び出してください。

PageWindowUpdatePages( "SomePageWindow" )

PageWindowClearPageBreaks()

改ページウィンドウとして登録された全てのウィンドウをクリアします。

パラメータ

pageWindowName(string) ページウィンドウの名前。

戻り値

nil戻り値無し。

PageWindowClearPageBreaks( "SomePageWindow" )

PageWindowAddPageBreak()

改ページウィンドウを新たに追加します。このウィンドウは常にページの頭から表示されます。

パラメータ

pageWindowName(string) ページウィンドウの名前。
pageBreakWindowName(string) childcontentswindow の子ウィンドウの名前

戻り値

nil戻り値無し。

メモ

  • レイアウト変更を確認するためには、手動で PageWindowUpdatePages() を実行する必要があります。

PageWindowAddPageBreak( "SomePageWindow", "ChapterTwoHeading" )

PageWindowRemovePageBreak()

特定のウィンドウの改ページ設定を削除します。

パラメータ

pageWindowName(string) ページウィンドウの名前。
pageBreakWindowName(string) childcontentswindow の子ウィンドウの名前。

戻り値

nil戻り値無し。

メモ

  • レイアウト変更を確認するためには、手動で PageWindowUpdatePages() を実行する必要があります。

PageWindowRemovePageBreak( "SomePageWindow", "ChapterTwoHeading" )

PageWindowClearSplitableWindows()

分割可能なウィンドウとして登録された全てのウィンドウをクリアします。

パラメータ

pageWindowName(string) ページウィンドウの名前。

戻り値

nil戻り値無し。

PageWindowClearSplitableWindows( "SomePageWindow" )

PageWindowAddSplitableWindow()

新たな分割可能なウィンドウを追加します。

このウィンドウがページからはみでると、次のページへ送られるのではなく、ページ間で分割されるように複製されます。

パラメータ

pageWindowName(string) ページウィンドウの名前。
spilableWindowName(string) childcontentswindow の子ウィンドウの名前。

戻り値

nil戻り値無し。

メモ

  • レイアウト変更を確認するためには、手動で PageWindowUpdatePages() を実行する必要があります。

PageWindowAddSplitableWindow( "SomePageWindow", "SomeTextBorder" )

PageWindowRemoveSplitableWindow()

特定のウィンドウの分割可能フラグを削除します。

パラメータ

pageWindowName(string) ページウィンドウの名前。
splitableWindowName(string) childcontentswindow の子ウィンドウの名前。

戻り値

nil戻り値無し。

メモ

  • レイアウト変更を確認するためには、手動で PageWindowUpdatePages() を実行する必要があります。

PageWindowRemoveSplitableWindow( "SomePageWindow", "SomeTextBorder" )
スクロールウィンドウ (ScrollWindow) は、全ての子ウィンドウに垂直方向のスクロールパネルを提供するコンテナウィンドウです。
解析される全てのウィンドウをページ内に含む子ウィンドウの名前。
ラベル (Label) 要素は、インターフェースのテキスト描画要素として主に使用されます。
新たな分割可能なウィンドウを追加します。
のど(ページとページの間)の距離。
ウィンドウ (Window) 要素はウィンドウを作成する際に使用する基本的な要素です。他のウィンドウ要素もこの要素の内容を継承しており、全ての属性、要素、データメンバー、関数をサポートしています。
ページレイアウトを更新するために、全ての子ウィンドウを処理します。
Close