Top > Extensions > AddonsToolbar * ツールバー [#cf63cbff] ツールバーも拡張機能独自のツールバーを作成する、または特定の位置にボタンを追加することができます。 Apache OpenOffice 4.0 以降は [[../AddonsToolbar2]] 参照 #contents ***ツールバーの追加 [#l17f718a] ツールバーは OfficeToolBar ノードに独自のノードを追加することで行います。 子ノードがメニュー項目への追加より一つ深くなっていることに注意。それ以外はメニュー項目の追加と同じです。 #code(xcu){{ <?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&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 の部分によってソートされます。 ***特定の位置への追加 [#q8392b73] 特定の位置へのボタンの追加は OfficeToolbarMerging ノードに項目を追加することで行います。 メニューの特定の位置への追加と同じような形になります。 #code(xcu){{ <?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&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> }} |項目|説明|h |MergeToolBar|追加するツールバー名を内部名で指定します。[[ツールバー名一覧>OOoBasic/Generic/toolbar#n55a7f3d]]などから探します。private:resource/toolbar/ の部分を省いて指定します。| |MergePoint|追加する位置を指定します。| |MergeCommand|追加する方法を指定します。AddAfter, AddBefore, Replace, Remove (後ろに追加、前に追加、置換、削除) が利用できます。| |MergeFallback|追加位置が見つからなかったときの動作を指定します。AddFirst, AddLast, Ignore (最初に追加、最後に追加、無視) が利用できます。| |MergeContext|追加するモジュール名を指定します。| **ツールバー名 [#c756c719] メニューの表示 - ツールバー項目に表示されるツールバー名を指定するには別の設定ファイルが必要です。 ツールバー名は user/registry/data/org/openoffice/Office/UI 以下にある xxxWindowState.xcu ファイルに保存されます。これと同じものを拡張機能に含めることでツールバーの名称を指定します。 表示するモジュールに対応した設定ファイルが必要です。Context で指定した数だけ用意する必要があります。Writer と Calc を指定したのであれば、WriterWindowState.xcu と CalcWindowState.xcu を用意する。(実際のファイル名は違ってもよい。) 以下のファイルは Calc 用で CalcWindowState を変更します。State ノード内に子ノードとして private:resource/toolbar/addon_ で始まり、上記 OfficeToolBar の子ノードで指定した名前をつなげます。 #code(xcu){{ <node oor:name="AddonUI"> <node oor:name="OfficeToolBar"> -> <node oor:name="my.calc.ann.ToolBar" oor:op="replace"> }} ツールバー名は UIName 要素に指定します。ローカライズできます。 #code(xcu){{ <?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>Extensions/Configuration]] 参照。 **区切り線 [#p1aba058] メニューやツールバーボタンの区切り線は次のような項目入れます。URL を private:separator とします。 #code(xcu){{ <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> }} **複数のツールバー [#zd07725a] 一つの Addons.xcu ファイルでは一つのツールバーしか作成できません。[[i86536>http://www.openoffice.org/issues/show_bug.cgi?id=86536]] しかし、二つ以上の設定ファイルを用意すれば二つ以上のツールバーを利用できます。 (Addons.xcu ファイルと書いていますが、ファイル名はこの通りにする必要はありません。) "OfficeToolBar" ノードに追加する子ノード名をそれぞれ違うものにしておきます。 |