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 と同じ方法です。 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) }} |