*レイヤー [#z7703e26]
#contents
**概要 [#u5ed9642]
レイヤーはドキュメントで一貫して存在します。ページごとレイヤーを追加したりするのではなく、ドキュメント全体に反映されます。
ドキュメントを作成すると最初から五つのレイヤーが在ります。このうち background と backgroundobjects は隠しレイヤーで UI に表示されません。
|レイヤー名|説明|h
|layout|一般レイヤー|
|background|背景に配置したシェープ|
|backgroundobjects||
|controls|いつも最前面|
|measurelines|寸法線|
レイヤーを追加したり削除したりできますが、標準のものは削除できません。
**レイヤーマネージャ [#b48a6bed]
レイヤーマネージャがレイヤーを管理します。ドキュメントオブジェクトから getLayerManager メソッドで取得します。
oDoc = ThisComponent
oLayerManager = oDoc.getLayerManager()
このレイヤーマネージャは一般的な com.sun.star.container.XNameAccess インターフェースおよび独自の com.sun.star.drawing.XLayerManager インターフェースを備えています。
XNameAccess インターフェースを利用してレイヤーにアクセスできます。レイヤーの追加や削除といった管理は XLayerManager インターフェースを利用します。
**取得 [#q5552be8]
レイヤーの取得は XNameAccess インターフェースを使用します。また、XLayerManager インターフェースは XIndexAccess インターフェースを継承しているのでそのインターフェースのメソッドも利用できます。
sLayerNames = oLayerManager.getElementNames()
For i = 0 To UBound(sLayerNames) Step 1
sLayerName = sLayerNames(i)
oLayer = oLayerManager.getByName(sLayerName)
Next
XIndexAccess のメソッドも利用できます。
For i = 0 To oLayerManager.getCount() - 1 Step 1
oLayer = oLayerManager.getByIndex(i)
Next
**追加 [#w8c63a82]
レイヤーの追加。レイヤーの順番はコンテナ中のインデックスと同じになり、表示順に影響を与えます。
oLayer = oLayerManager.insertNewByIndex(1)
**削除 [#g6345177]
レイヤーを削除します。
oLayerManager.remove(oLayer)
**シェープのあるレイヤー [#zc1e817e]
あるシェープが所属しているレイヤーを取得します。
oShape = oDrawPage.getByIndex(0)
oLayer = oLayerManager.getLayerForShape(oShape)
**シェープをレイヤーに配置 [#dedfaa14]
あるシェープを特定のレイヤーに配置します。
oShape = oDrawPage.getByIndex(0)
oLayerManager.attachShapeToLayer( oShape, oLayer )
**レイヤーのプロパティ [#z56a44ba]
|プロパティ|説明|h
|Name|レイヤー名|
|IsLocked|ロックする|
|IsPrintable|印刷可能にする|
|IsVisible|表示状態|
|Title|タブ表示名|
|Description|レイヤーのコメント (2.4 以降?)|