Top > Extensions > AddonsToolbar

ツールバー Edit

ツールバーも拡張機能独自のツールバーを作成する、または特定の位置にボタンを追加することができます。

Apache OpenOffice 4.0 以降は ../AddonsToolbar2 参照

ツールバーの追加 Edit

ツールバーは OfficeToolBar ノードに独自のノードを追加することで行います。

子ノードがメニュー項目への追加より一つ深くなっていることに注意。それ以外はメニュー項目の追加と同じです。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 <?xml version='1.0' encoding='UTF-8'?>
 <oor:component-data 
 xmlns:oor="http://openoffice.org/2001/registry" 
 xmlns:xs="http://www.w3.org/2001/XMLSchema" 
 oor:name="Addons" 
 oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
   <node oor:name="OfficeToolBar">
    <node oor:name="mytools.calc.annotation.OfficeToolBar" oor:op="replace">
     <node oor:name="a11_show1" oor:op="replace">
      <prop oor:name="Title" oor:type="xs:string">
       <value xml:lang="en-US">Show All</value>
       <value xml:lang="ja">コメントの全表示</value>
      </prop>
      <prop oor:name="URL" oor:type="xs:string">
       <value>vnd.sun.star.script:myts?language=Basic&amp;location=application</value>
      </prop>
      <prop oor:name="Target" oor:type="xs:string">
       <value>_self</value>
      </prop>
      <prop oor:name="Context" oor:type="xs:string">
       <value>com.sun.star.sheet.SpreadsheetDocument</value>
      </prop>
      <prop oor:name="ImageIdentifier" oor:type="xs:string">
       <value>%origin%/icons/allshow</value>
      </prop>
     </node>
    </node>
   </node>
  </node>
 </oor:component-data>

ツールバーボタンの順番はノード名によって決まります。上記では a11_show1 の部分によってソートされます。

特定の位置への追加 Edit

特定の位置へのボタンの追加は OfficeToolbarMerging ノードに項目を追加することで行います。

メニューの特定の位置への追加と同じような形になります。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 <?xml version='1.0' encoding='UTF-8'?>
 <oor:component-data 
 xmlns:oor="http://openoffice.org/2001/registry" 
 xmlns:xs="http://www.w3.org/2001/XMLSchema" 
 oor:name="Addons" 
 oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
   <node oor:name="OfficeToolbarMerging">
    <node oor:name="mytools.calc.annotation.AddonButton" oor:op="replace">
     <node oor:name="a11_show1" oor:op="replace">
      <prop oor:name="MergeToolBar">
       <value>standardbar</value>
      </prop>
      <prop oor:name="MergePoint">
       <value>.uno:Paste</value>
      </prop>
      <prop oor:name="MergeCommand">
       <value>AddAfter</value>
      </prop>
      <prop oor:name="MergeFallback">
       <value>AddLast</value>
      </prop>
      <prop oor:name="MergeContext">
       <value>com.sun.star.sheet.SpreadsheetDocument</value>
      </prop>
      <node oor:name="ToolBarItems">
       <node oor:name="btn_01" oor:op="replace">
        <prop oor:name="Title" oor:type="xs:string">
         <value xml:lang="en-US">Show All</value>
         <value xml:lang="ja">コメントの全表示</value>
        </prop>
        <prop oor:name="URL" oor:type="xs:string">
         <value>vnd.sun.star.script:Std.Mod.M1?language=Basic&amp;location=application</value>
        </prop>
        <prop oor:name="Target" oor:type="xs:string">
         <value>_self</value>
        </prop>
        <prop oor:name="Context" oor:type="xs:string">
         <value>com.sun.star.sheet.SpreadsheetDocument</value>
        </prop>
        <prop oor:name="ImageIdentifier">
         <value>%origin%/icons/allexchange</value>
        </prop>
       </node>
      </node>
     </node>
    </node>
   </node>
  </node>
 </oor:component-data>
項目説明
MergeToolBar追加するツールバー名を内部名で指定します。ツールバー名一覧などから探します。private:resource/toolbar/ の部分を省いて指定します。
MergePoint追加する位置を指定します。
MergeCommand追加する方法を指定します。AddAfter, AddBefore, Replace, Remove (後ろに追加、前に追加、置換、削除) が利用できます。
MergeFallback追加位置が見つからなかったときの動作を指定します。AddFirst, AddLast, Ignore (最初に追加、最後に追加、無視) が利用できます。
MergeContext追加するモジュール名を指定します。

ツールバー名 Edit

メニューの表示 - ツールバー項目に表示されるツールバー名を指定するには別の設定ファイルが必要です。

ツールバー名は user/registry/data/org/openoffice/Office/UI 以下にある xxxWindowState.xcu ファイルに保存されます。これと同じものを拡張機能に含めることでツールバーの名称を指定します。

表示するモジュールに対応した設定ファイルが必要です。Context で指定した数だけ用意する必要があります。Writer と Calc を指定したのであれば、WriterWindowState.xcu と CalcWindowState.xcu を用意する。(実際のファイル名は違ってもよい。)

以下のファイルは Calc 用で CalcWindowState を変更します。State ノード内に子ノードとして private:resource/toolbar/addon_ で始まり、上記 OfficeToolBar の子ノードで指定した名前をつなげます。

  0
  1
  2
   <node oor:name="AddonUI">
     <node oor:name="OfficeToolBar">
    ->  <node oor:name="my.calc.ann.ToolBar" oor:op="replace">

ツールバー名は UIName 要素に指定します。ローカライズできます。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data 
xmlns:oor="http://openoffice.org/2001/registry" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
oor:name="CalcWindowState" 
oor:package="org.openoffice.Office.UI">
<node oor:name="UIElements">
<node oor:name="States">
<node oor:name="private:resource/toolbar/addon_my.calc.ann.ToolBar" oor:op="replace">
 <prop oor:name="UIName" oor:type="xs:string">
  <value xml:lang="en">Note Tools</value>
  <value xml:lang="ja">コメントツール</value>
 </prop>
</node>
</node>
</node>
</oor:component-data>

途中からこのファイルを用意してもツールバー名に反映されないことがあります。これはコンフィグレーションファイルの三相による問題です。Configuration 参照。

区切り線 Edit

メニューやツールバーボタンの区切り線は次のような項目入れます。URL を private:separator とします。

  0
  1
  2
  3
  4
  5
  6
  7
 <node oor:name="a24_sep1" oor:op="replace">
  <prop oor:name="URL" oor:type="xs:string">
   <value>private:separator</value>
  </prop>
  <prop oor:name="Context" oor:type="xs:string">
   <value></value>
  </prop>
 </node>

複数のツールバー Edit

一つの Addons.xcu ファイルでは一つのツールバーしか作成できません。i86536 しかし、二つ以上の設定ファイルを用意すれば二つ以上のツールバーを利用できます。

(Addons.xcu ファイルと書いていますが、ファイル名はこの通りにする必要はありません。)

"OfficeToolBar" ノードに追加する子ノード名をそれぞれ違うものにしておきます。


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