Top > OOoBasic > Generic > Icon

アイコン Edit

メニューやツールバーボタンのコマンドアイコン。アイコン画像はコマンドごとに指定されるため同じコマンドには同じ画像が使用されます。

コンフィグマネジャーサプライヤー Edit

ツールバーの変更のためのサービスにアクセスします。

Dim oModCfgMgrSup As Object
  oModCfgMgrSup = createUnoService( _
  "com.sun.star.ui.ModuleUIConfigurationManagerSupplier")

このサービスを利用して、アクセスしたいツールバーのコンフィグマネジャーにアクセスします。

コンフィグマネジャー Edit

コンフィグマネジャーサプライヤーにアクセスするモジュールの種類を指定して、コンフィグマネジャーを作成します。

Dim oModCfgMgr As Object
 oModCfgMgr = oModCfgMgrSup.getUIConfigurationManager(_
   "com.sun.star.sheet.SpreadsheetDocument" )

イメージマネージャ Edit

画像を管理するイメージマネージャをコンフィグマネージャから取得します。

oImgMgr = oModCfgMgr.getImageManager()

画像タイプ Edit

アイコン画像のにはサイズとカラーに関して形式が分かれています。

com.sun.star.ui.ImageType
SIZE_DEFAULT0
SIZE_LARGE1
COLOR_NORMAL0
COLOR_HIGHCONTRAST4

サイズと色は組み合わせて使用します。

画像名一覧 Edit

画像名はコマンドと同じものを使用しそのコマンドに対して同じ名前の画像が利用されます。getAllImageNames メソッドで画像タイプを指定して取得します。

sImgNames = oImgMgr.getAllImageNames( _
   com.sun.star.ui.ImageType.SIZE_DEFAULT + _
   com.sun.star.ui.ImageType.COLOR_DEFAULT)

画像の取得 Edit

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

追加 Edit

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

コマンドとアイコン画像はそれぞれ配列で渡します。そのため複数のアイコン画像を一度に設定できます。

削除 Edit

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

同時に複数のアイコン画像の削除もできます。

変更 Edit

アイコン画像の変更は replaceImages メソッドで画像タイプ、コマンド、アイコン画像を指定して変更します。

変更の保存 Edit

変更を行ったときには store メソッドで変更を保存します。

oImgMgr.store()

変更のリセット Edit

reset メソッドで変更前に戻します。

画像の保存場所 Edit

設定したアイコン画像は PNG ファイルとして config/soffice.cfg/modules/ 以下の各モジュールの images 以下に設定ファイルおよびその Bitmaps ディレクトリに画像ファイルが保存されます。


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