Top > Extensions > ComplexToolbar

複雑なツールバー Edit

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

コントロールの種類 Edit

ツールバーでは次のコントロールを作成、利用できます。

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

*: Width 指定可

ControlType に上記の種類を指定します。幅の指定が可能なものには Width を指定します。

コントロール操作用コマンド Edit

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

コントロールコマンド引数説明
Buttonなし
ToggleButtonなし
ComboboxSetTextText = stringテキストを設定する
SetListList = []stringリストを設定する
AddEntryText = string項目を追加する
InsertEntryText = string,
Pos = long
項目を挿入する
RemoveEntryPosPos = long項目を削除する
RemoveEntryTextText = string項目を削除する
SetDropDownLinesLines = longドロップダウン行数を設定する
SetBackgroundColorColor = Long背景色を設定する
SetTextColorColor = Long文字色を設定する
DropdownboxSetListList = []stringリストを設定する
AddEntryText = string項目を追加する
InsertEntryText = string,
Pos = long
項目を挿入する
RemoveEntryPosPos = long項目を削除する
RemoveEntryTextText = string項目を削除する
SetDropDownLinesLines = longドロップダウン行数を設定する
DropdownButtonSetListList = []stringリストを設定する
CheckItemPosPos = longアイテムにチェックを入れる
AddEntryText = string項目を追加する
InsertEntryText = string,
Pos = long
項目を挿入する
RemoveEntryPosPos = long項目を削除する
RemoveEntryTextText = string項目を削除する
EditfieldSetTextText = string文字列を設定する
ImageButtonSetImageURL = string画像を変更する
SpinfieldSetStepStep = longステップ値を変更する
SetValueValue = long値を設定する
SetValuesValue = long,
Step = long,
LowerLimit = long,
UpperLimit = long,
OutputFormat = string
設定値を変更する
SetLowerLimitLowerLimit = long下限値を変更する
SetUpperLimitUpperLimit = long上限値を変更する
SetOutputFormatOutputFormat = string表示フォーマットを変更する
ToggleDropdownButtonSetListList = []stringリストを設定する
CheckItemPosPos = longアイテムにチェックを入れる
AddEntryText = string項目を追加する
InsertEntryText = string,
Pos = long
項目を挿入する
RemoveEntryPosPos = long項目を削除する
RemoveEntryTextText = string項目を削除する

コントロールのイベント Edit

コントロールで発生するイベント名と引数の一覧です。イベント名と引数のセットは com.sun.star.beans.NamedValue のシークエンスです。

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

コントロールイベント引数説明
Buttonなし
ToggleButtonなし
ComboboxListChangedList = []stringリストの変更
TextChangedText = stringテキストの変更
FocusSetフォーカスイン
FocusLostフォーカスアウト
DropdownBoxListChangedList = []stringリストの変更
FocusSetフォーカスイン
FocusLostフォーカスアウト
DropdownButtonListChangedList = []stringリストの変更
PosItemChecked = long選択アイテムの変更
EditfieldTextChangedText = stringテキストの変更
FocusSetフォーカスイン
FocusLostフォーカスアウト
ImageButtonImageChangedURL = string画像の変更
SpinfieldTextChangedText = stringテキストの変更
FocusSetフォーカスイン
FocusLostフォーカスアウト
ToggleDropdownButtonListChangedList = []stringリストの変更
PosItemChecked = long選択アイテムの変更

コントロール実行時引数 Edit

コントロールが実行されたとき dispatch メソッドが呼ばれます。そのときの引数の値の種類一覧です。引数は com.sun.star.beans.PropertyValue のシークエンスです。

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

コントロール引数説明
ButtonKeyModifire = longボタン動作時
ToggleButtonKeyModifire = longボタン動作時
ComboboxText = string,
KeyModifire = long
コンボボックス動作時
DropdownBoxText = string,
KeyModifire = long
ドロップダウンボックス項目選択時
EditfieldText = string,
KeyModifire = long
テキストフィールド動作時
ImageButtonKeyModifire = longボタン動作時
SpinfieldValue = long/double,
KeyModifire = long
スピン値変更時
ToggleDropdownButtonText = string,
KeyModifire = long
ボタン動作時

コマンドによるコントロールの操作 Edit

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

ToggleButton Edit

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

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

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

  0
  1
  2
  3
  4
  5
  6
  7
  8
    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 Edit

ToggleDropdownButton の状態変更方法は ToggleButton と同じです。

ボタンのラベルを変更する Edit

FeatureStateEvent の Status に文字列を指定します。

Dropdown ボタンのリストを設定する Edit

python では css.beans.NamedValue の Value フィールドに []string を設定しようと tuple('item1', 'item2') などのようにすると []any となってしまうので以下のようにします。

  0
  1
  2
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