Top > Extensions > Addons

アドオンツールバーとメニュー Edit

拡張機能のツールバーとメニューが利用できます。

概要 Edit

拡張機能に Addons.xcu (ファイル名は何でもよい) ファイルを追加して拡張機能のツールバーを作成したり、メニューに拡張機能の項目を追加できます。

/org.openoffice.Office.Addons に値を追加、変更するのがここでの主題です。

Apache OpenOffice 4.0 で互換性のない変更が行われたため、それぞれについて各ページで説明しています。

画像 Edit

メニュー項目やツールバーに表示するアイコンの画像を指定できます。上記で指定している ImageIdentifier を使う方法は古いので別の方法をお勧めします。ImageIdentifier を使う場合には 16 x 16 および 26 x 26 pixel の bmp 画像しか取り扱えませんでした。新しい方法では png 画像が利用できます。

Images を使う方法 Edit

新しいこちらの方法をお勧めします。 Images ノードに実行するコマンド URL ごとに画像を指定します。画像の指定は URL で指定する方法または画像のバイナリデータを文字列として埋め込む方法です。データを埋め込んだもののほうが優先的に表示されます。データを埋め込むとメンテナンスしにくくなるため URL 指定の方が楽です。

まずは URL を指定する方法です。 Images ノードに独自名のノードを追加します。URL プロパティ値にコマンド URL を指定します。画像指定は UserDefinedImages ノードのプロパティで指定します。16x16 pixcel の画像 ImageSmallURL、26x26 pixcel の画像 ImageBigURL、ハイコントラスト 16x16 pixcel の画像、ハイコントラスト 26x26 pixcel の画像 ImageBigHCURL が指定できます。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 <node oor:name="Images">
   <node oor:name="mytools_image01" oor:op="replace">
     <prop oor:name="URL" oor:type="xs:string">
       <value>vnd.sun.star.script:lib.mod.sub?language=Basic&amp;location=application</value>
     </prop>
     <node oor:name="UserDefinedImages">
       <prop oor:name="ImageSmallURL">
         <value>%origin%/icons/current_small.png</value>
       </prop>
       <prop oor:name="ImageBigURL">
         <value>%origin%/icons/current_big.png</value>
       </prop>
       <prop oor:name="ImageSmallHCURL">
         <value>%origin%/icons/current_smallhc.png</value>
       </prop>
       <prop oor:name="ImageBigHCURL">
         <value>%origin%/icons/current_bighc.png</value>
       </prop>
     </node>
   </node>
 </node>

画像の URL 指定は %origin% を利用します。この %origin% は拡張機能のインストール時に設定ファイルのあるディレクトリの URL に置き換えられます。上記の場合にはディレクトリ構成は次のようになります。

  • Addons.xcu
  • icons
    • current_small.png
    • current_big.png
    • current_smallhc.png
    • current_bighc.png

png 画像の透過は正しく処理されます。

次はデータを直接指定する方法です。バイナリデータを十六進数に変換して文字列として記述します。

データは長いので省略しますが、データの文字列はマクロを利用すれば簡単に作成できます。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 <node oor:name="Images">
   <node oor:name="mytools_image01" oor:op="replace">
     <prop oor:name="URL" oor:type="xs:string">
       <value>vnd.sun.star.script:lib.mod.sub?language=Basic&amp;location=application</value>
     </prop>
     <node oor:name="UserDefinedImages">
       <prop oor:name="ImageSmall">
         <value>424df600000000....</value>
       </prop>
       <prop oor:name="ImageBig">
         <value>424df600000000....</value>
       </prop>
       <prop oor:name="ImageSmallHC">
         <value>424df600000000....</value>
       </prop>
       <prop oor:name="ImageBigHC">
         <value>424df600000000....</value>
       </prop>
     </node>
   </node>
 </node>

ImageIdentifier を使った方法 Edit

少し古い方法です。bmp 形式の画像しか取り扱えません。bmp 画像のマゼンタ rgb(255,0,255) の部分は透過処理されます。

それぞれの項目に ImageIdentifier プロパティを埋め込みます。

ファイル名 drawingexport_16.bmp と drawingexport_26.bmp の二つのファイルを用意しておき、次のように指定します。

  0
  1
  2
   <prop oor:name="ImageIdentifier">
    <value>%origin%/drawingexport</value>
   </prop>

_16.bmp や _26.bmp の部分は表示設定に応じて選択されます。

ヘルプ Edit

OfficeHelp ノードに独自のノードを追加することでメニューのヘルプ以下に拡張機能のヘルプが追加できます。

OfficeHelp ノードに独自のメニュー項目を追加します。メニューの項目は上記のアドオンメニューへ追加するときと同じようにします。


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