Top > Extensions > ComplexToolbar
*複雑なツールバー [#w17c2319]
Addons.xcu ファイルでツールバーを利用する際にボタンの代わりに他のテキストフィールドやコンボボックスといったコントロールを配置することができます。OOo Basic だけではこれらのコントロールの操作ができません。別の言語を利用する必要があります。

#contents
**コントロールの種類 [#t61f74a0]
ツールバーでは次のコントロールを作成、利用できます。

|コントロール|オプション|説明|h
|Button||ボタン|
|Combobox|*|コンボボックス|
|Dropdownbox|*|リストボックス|
|DropdownButton|*|ドロップダウンボタン|
|Editfield|*|テキストフィールド|
|ImageButton||画像ボタン|
|Spinfield|*|スピンフィールド|
|ToggleButton||トグルボタン|
|ToggleDropdownButton||切り替えドロップボタン|
*: Width 指定可

ControlType に上記の種類を指定します。幅の指定が可能なものには Width を指定します。
**コントロール操作用コマンド [#h89c35c6]

操作用コマンドの一覧です。コマンドは OOo のソースコード framework/source/uielement 以下のファイルなどからから抜き出したものです。

|コントロール|コマンド|引数|説明|h
|Button|||なし|
|ToggleButton|||なし|
|Combobox|SetText|Text = string|テキストを設定する|
|~|SetList|List = []string|リストを設定する|
|~|AddEntry|Text = string|項目を追加する|
|~|InsertEntry|Text = string, &br;Pos = long|項目を挿入する|
|~|RemoveEntryPos|Pos = long|項目を削除する|
|~|RemoveEntryText|Text = string|項目を削除する|
|~|SetDropDownLines|Lines = long|ドロップダウン行数を設定する|
|~|SetBackgroundColor|Color = Long|背景色を設定する|
|~|SetTextColor|Color = Long|文字色を設定する|
|Dropdownbox|SetList|List = []string|リストを設定する|
|~|AddEntry|Text = string|項目を追加する|
|~|InsertEntry|Text = string, &br;Pos = long|項目を挿入する|
|~|RemoveEntryPos|Pos = long|項目を削除する|
|~|RemoveEntryText|Text = string|項目を削除する|
|~|SetDropDownLines|Lines = long|ドロップダウン行数を設定する|
|DropdownButton|SetList|List = []string|リストを設定する|
|~|CheckItemPos|Pos = long|アイテムにチェックを入れる|
|~|AddEntry|Text = string|項目を追加する|
|~|InsertEntry|Text = string, &br;Pos = long|項目を挿入する|
|~|RemoveEntryPos|Pos = long|項目を削除する|
|~|RemoveEntryText|Text = string|項目を削除する|
|Editfield|SetText|Text = string|文字列を設定する|
|ImageButton|SetImage|URL = string|画像を変更する|
|Spinfield|SetStep|Step = long|ステップ値を変更する|
|~|SetValue|Value = long|値を設定する|
|~|SetValues|Value = long, &br;Step = long, &br;LowerLimit = long, &br;UpperLimit = long, &br;OutputFormat = string|設定値を変更する|
|~|SetLowerLimit|LowerLimit = long|下限値を変更する|
|~|SetUpperLimit|UpperLimit = long|上限値を変更する|
|~|SetOutputFormat|OutputFormat = string|表示フォーマットを変更する|
|ToggleDropdownButton|SetList|List = []string|リストを設定する|
|~|CheckItemPos|Pos = long|アイテムにチェックを入れる|
|~|AddEntry|Text = string|項目を追加する|
|~|InsertEntry|Text = string, &br;Pos = long|項目を挿入する|
|~|RemoveEntryPos|Pos = long|項目を削除する|
|~|RemoveEntryText|Text = string|項目を削除する|
**コントロールのイベント [#r438a913]
コントロールで発生するイベント名と引数の一覧です。イベント名と引数のセットは &idlref(com.sun.star.beans.NamedValue); のシークエンスです。

これらは OOo のソースコード framework/source/uielement 以下のファイルなどからから抜き出したものです。

|コントロール|イベント|引数|説明|h
|Button|||なし|
|ToggleButton|||なし|
|Combobox|ListChanged|List = []string|リストの変更|
|~|TextChanged|Text = string|テキストの変更|
|~|FocusSet ||フォーカスイン|
|~|FocusLost ||フォーカスアウト|
|DropdownBox|ListChanged|List = []string|リストの変更|
|~|FocusSet ||フォーカスイン|
|~|FocusLost ||フォーカスアウト|
|DropdownButton|ListChanged|List = []string|リストの変更|
|~|Pos|ItemChecked = long|選択アイテムの変更|
|Editfield|TextChanged|Text = string|テキストの変更|
|~|FocusSet ||フォーカスイン|
|~|FocusLost ||フォーカスアウト|
|ImageButton|ImageChanged|URL = string|画像の変更|
|Spinfield|TextChanged|Text = string|テキストの変更|
|~|FocusSet ||フォーカスイン|
|~|FocusLost ||フォーカスアウト|
|ToggleDropdownButton|ListChanged|List = []string|リストの変更|
|~|Pos|ItemChecked = long|選択アイテムの変更|
**コントロール実行時引数 [#r714475a]
コントロールが実行されたとき dispatch メソッドが呼ばれます。そのときの引数の値の種類一覧です。引数は com.sun.star.beans.PropertyValue のシークエンスです。

これらは OOo のソースコード framework/source/uielement 以下のファイルなどからから抜き出したものです。

|コントロール|引数|説明|h
|Button|KeyModifire = long|ボタン動作時|
|ToggleButton|KeyModifire = long|ボタン動作時|
|Combobox|Text = string, &br;KeyModifire = long|コンボボックス動作時|
|DropdownBox|Text = string, &br;KeyModifire = long|ドロップダウンボックス項目選択時|
|Editfield|Text = string, &br;KeyModifire = long|テキストフィールド動作時|
|ImageButton|KeyModifire = long|ボタン動作時|
|Spinfield|Value = long/double, &br;KeyModifire = long|スピン値変更時|
|ToggleDropdownButton|Text = string, &br;KeyModifire = long|ボタン動作時|

**コマンドによるコントロールの操作 [#kb220829]
com.sun.star.frame.XDispatch インターフェースの addStatusListener が呼ばれたときに渡される com.sun.star.frame.XStatusListener インターフェースの statusChanged メソッドの引数に操作コマンドなどを含めた com.sun.star.frame.FeatureStateEvent を渡すことでコントロールの状態を操作します。

***ToggleButton [#k239c98a]
ToggleButton はコマンドで操作される項目はありません。その代わりに、FeatureStateEvent の State 要素にボタンの状態 (True 押した状態、False 押していない状態) を指定して toggle させます。

ToggleButton の状態はコードから操作しない限り変更されません (試しに Addons.xcu ファイルのみで ToggleButton を作成しても toggle されない)。

ToggleButton の状態を設定する時には State に ControlCommand を使いません。State にブール値を指定します。

#code(python){{
	def createSimpleEvent(self,aURL,state,Enabled=True):
		""" create Event without command """
		aEvent = FeatureStateEvent()
		aEvent.FeatureURL = aURL
		aEvent.IsEnabled = Enabled
		aEvent.Requery = False
		aEvent.Source = self
		aEvent.State = state
		return aEvent
}}

このボタンが押されたときに状態を切り替えるには、(ボタンが押されて) dispatch メソッドが呼ばれる度に逆の状態に変更する必要があります。

***ToggleDropdownButton [#h970d5e3]
ToggleDropdownButton の状態変更方法は ToggleButton と同じです。
*** ボタンのラベルを変更する [#t843bcab]
FeatureStateEvent の Status に文字列を指定します。

*** Dropdown ボタンのリストを設定する [#ya6e9e88]
python では css.beans.NamedValue の Value フィールドに []string を設定しようと tuple('item1', 'item2') などのようにすると []any となってしまうので以下のようにします。
#code(python){{
import uno
value = uno.Any('[]string', ('hoge', 'hoge2'))
v = NamedValue('List', value)
}}

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes