アイコン 
メニューやツールバーボタンのコマンドアイコン。アイコン画像はコマンドごとに指定されるため同じコマンドには同じ画像が使用されます。
コンフィグマネジャーサプライヤー 
ツールバーの変更のためのサービスにアクセスします。
Dim oModCfgMgrSup As Object
oModCfgMgrSup = createUnoService( _
"com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
このサービスを利用して、アクセスしたいツールバーのコンフィグマネジャーにアクセスします。
コンフィグマネジャー 
コンフィグマネジャーサプライヤーにアクセスするモジュールの種類を指定して、コンフィグマネジャーを作成します。
Dim oModCfgMgr As Object
oModCfgMgr = oModCfgMgrSup.getUIConfigurationManager(_
"com.sun.star.sheet.SpreadsheetDocument" )
イメージマネージャ 
画像を管理するイメージマネージャをコンフィグマネージャから取得します。
oImgMgr = oModCfgMgr.getImageManager()
画像タイプ 
アイコン画像のにはサイズとカラーに関して形式が分かれています。
com.sun.star.ui.ImageType | |
SIZE_DEFAULT | 0 |
SIZE_LARGE | 1 |
COLOR_NORMAL | 0 |
COLOR_HIGHCONTRAST | 4 |
サイズと色は組み合わせて使用します。
画像名一覧 
画像名はコマンドと同じものを使用しそのコマンドに対して同じ名前の画像が利用されます。getAllImageNames メソッドで画像タイプを指定して取得します。
sImgNames = oImgMgr.getAllImageNames( _
com.sun.star.ui.ImageType.SIZE_DEFAULT + _
com.sun.star.ui.ImageType.COLOR_DEFAULT)
画像の取得 
getImages メソッドで複数のアイコン画像を一度に取得します。戻り値は com.sun.star.graphic.XGraphic インターフェースの配列です。
Sub icon_1
oModCfgMgrSup = createUnoService( _
"com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
oModCfgMgr = oModCfgMgrSup.getUIConfigurationManager(_
"com.sun.star.script.BasicIDE" )
oImgMgr = oModCfgMgr.getImageManager()
sCmd = ".uno:BasicIDEAppear"
sURL = "file:///C:/usr/sx03139.png"
Dim aImgDesc(0) As New com.sun.star.beans.PropertyValue
aImgDesc(0).Name = "URL"
aImgDesc(0).Value = sURL
oGP = CreateUnoService("com.sun.star.graphic.GraphicProvider")
oGraphic = oGP.queryGraphic(aImgDesc)
oGraphics = oImgMgr.getImages(0,Array(sCmd))
End Sub
追加 
insertImages メソッドで画像タイプおよびコマンド、画像を指定してアイコン画像を追加します。
Sub icon_5
oModCfgMgrSup = createUnoService( _
"com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
oModCfgMgr = oModCfgMgrSup.getUIConfigurationManager(_
"com.sun.star.script.BasicIDE" )
oImgMgr = oModCfgMgr.getImageManager()
sCmd = ".uno:BasicIDEAppear"
sURL = "file:///C:/usr/sx03139.png"
Dim aImgDesc(0) As New com.sun.star.beans.PropertyValue
aImgDesc(0).Name = "URL"
aImgDesc(0).Value = sURL
oGP = CreateUnoService("com.sun.star.graphic.GraphicProvider")
oGraphic = oGP.queryGraphic(aImgDesc)
oImgMgr.insertImages(0,Array(sCmd),Array(oGraphic))
oImgMgr.store()
End Sub
コマンドとアイコン画像はそれぞれ配列で渡します。そのため複数のアイコン画像を一度に設定できます。
削除 
removeImages メソッドで画像タイプとコマンドを指定してアイコン画像を削除します。
Sub icon_6
oModCfgMgrSup = createUnoService( _
"com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
oModCfgMgr = oModCfgMgrSup.getUIConfigurationManager(_
"com.sun.star.script.BasicIDE" )
oImgMgr = oModCfgMgr.getImageManager()
sCmd = ".uno:BasicIDEAppear"
sURL = "file:///C:/usr/sx03139.png"
Dim aImgDesc(0) As New com.sun.star.beans.PropertyValue
aImgDesc(0).Name = "URL"
aImgDesc(0).Value = sURL
oGP = CreateUnoService("com.sun.star.graphic.GraphicProvider")
oGraphic = oGP.queryGraphic(aImgDesc)
oImgMgr.removeImages(0,Array(sCmd))
oImgMgr.store()
End Sub
同時に複数のアイコン画像の削除もできます。
変更 
アイコン画像の変更は replaceImages メソッドで画像タイプ、コマンド、アイコン画像を指定して変更します。
変更の保存 
変更を行ったときには store メソッドで変更を保存します。
oImgMgr.store()
変更のリセット 
reset メソッドで変更前に戻します。
画像の保存場所 
設定したアイコン画像は PNG ファイルとして config/soffice.cfg/modules/ 以下の各モジュールの images 以下に設定ファイルおよびその Bitmaps ディレクトリに画像ファイルが保存されます。