プロパティー

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png


名前とタイトル

各コントロール要素には名前が付けられており、これらの名前に対しては、次のモデルプロパティーを用いて参照することができます。

Model.Name (String)
コントロール要素名

ダイアログのタイトルバーに表示されるタイトルに対しては、次のモデルプロパティーを用いて参照することができます。

Model.Title (String)
ダイアログタイトル (ダイアログに対してのみ適用)

位置とサイズ

コントロール要素の表示位置とサイズに対しては、次のモデルプロパティーを用いて参照することができます。

Model.Height (long)
コントロール要素の高さ (ma 単位)
Model.Width (long)
コントロール要素の幅 (ma 単位)
Model.PositionX (long)
ダイアログ内側の左端から測った、コントロール要素の X 座標 (ma 単位)
Model.PositionY (long)
ダイアログ内側の上端から測った、コントロール要素の Y 座標 (ma 単位)

Apache OpenOffice では、プラットフォームへの非依存性を確保する観点から、ダイアログ内での位置とサイズを示す際に、Map AppFont (ma) という内部単位を使用しています。ma 単位では、オペレーティングシステムに設定されたシステムフォントの平均サイズを基準に、その高さの 8 分の 1 および幅の 4 分の 1 を、各方向の 1 単位と定めています。Apache OpenOffice はこのような ma 単位を利用することで、システム設定の異なる環境下においても、ダイアログの表示が同じになるようにしています。

実行時に表示されるコントロール要素の位置とサイズを変更する場合は、ダイアログのサイズを確認してから、コントロール要素の表示指定を調整します。

Documentation note.png Map AppFont (ma) 単位は、プラットフォームへの非依存性を確保する観点から、従来の Twip (トゥウィップ) 単位に替わって導入されたものです。

フォーカスおよびタブ順

ダイアログ上に配置されたコントロール要素に対しては、Tab キーによるフォーカス移動が行えます。こうした操作に関係するコントロール要素モデルでは、次の属性が利用できます。

Model.Enabled (Boolean)
コントロール要素をアクティブにする指定
Model.Tabstop (Boolean)
コントロール要素を Tab キーによるフォーカス移動の対象にする指定
Model.TabIndex (Long)
アクティブ化の順序におけるコントロール要素の位置

最後に紹介する getFocus メソッドは、ダイアログ上のコントロール要素にフォーカス移動を行うよう設定するものです。

getFocus
コントロール要素がフォーカスを受け取ります (ダイアログの場合のみ)

マルチページダイアログ

Apache OpenOffice のダイアログには、複数のページを配置できます。ダイアログにある Step プロパティーはダイアログの現在のタブページを指定するものですが、コントロール要素にも同様の Step プロパティーが存在し、こちらは該当コントロールを表示するタブページを指定します。

Step に指定する値のうち、0 は特別な意味を持ちます。ダイアログ側で Step プロパティー値に 0 を指定すると、コントロール要素側の指定値とは無関係に、すべてのコントロール要素が表示されるようになります。これとは逆に、Step 属性値を 0 に設定したコントロール要素は、ダイアログのすべてのタブページ上に表示されるようになります。

ダイアログのページ 1 のデザイン

前の例では、分割線だけでなく「Cancel」、「Prev」、「Next」、「Done」の各ボタンについても Step の値を 0 に設定し、これらの要素をすべてのページに表示できます。ただし必要であれば、各コントロール要素を特定のタブページだけに表示させることもできます (たとえばページ 1)。

次のサンプルコードでは、イベントハンドラに応じて、「Next」および「Prev」ボタンの Step 値を増減させて、ボタンの表示用ステータスを変更しています。

Sub cmdNext_Initiated
 
   Dim cmdNext As Object
   Dim cmdPrev As Object
 
   cmdPrev = Dlg.getControl("cmdPrev")
   cmdNext = Dlg.getControl("cmdNext")
   cmdPrev.Model.Enabled = Not cmdPrev.Model.Enabled
   cmdNext.Model.Enabled = False
   Dlg.Model.Step = Dlg.Model.Step + 1
 
End Sub
 
Sub cmdPrev_Initiated
 
   Dim cmdNext As Object
   Dim cmdPrev As Object
 
   cmdPrev = Dlg.getControl("cmdPrev")
   cmdNext = Dlg.getControl("cmdNext")
   cmdPrev.Model.Enabled = False
   cmdNext.Model.Enabled = True
   Dlg.Model.Step = Dlg.Model.Step - 1
 
End Sub

このサンプルコードを使用する場合は、ダイアログの参照に用いる Dlg という変数を、広域変数として用意しておく必要があります。そしてこのサンプルコードの実行により、ダイアログ上のボタンは、次の図のように表示ステータスが切り換えられます。

ページ 1
ページ 2


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools