Serviço SFWidgets.ToolbarButton

O serviço ToolbarButton permite recuperar informações relacionadas aos botões da barra de ferramentas disponíveis em uma determinada barra de ferramentas. Com este serviço é possível:

Invocação do serviço

Antes de usar o serviço ToolbarButton a biblioteca ScriptForge precisa ser carregada ou importada:

note

• Macros BASIC precisam carregar a biblioteca ScriptForge usando a seguinte instrução:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Scripts Python exigem uma importação do módulo scriptforge:
from scriptforge import CreateScriptService


O serviço ToolbarButton é invocado usando o método ToolbarButtons do serviço Toolbar.

Em Basic

O exemplo abaixo recupera os nomes de todos os botões disponíveis na barra de ferramentas Padrão.


    oDoc = CreateScriptService("Document", ThisComponent)
    oToolbar = oDoc.Toolbars("standardbar")
    arrToolbarButtons = oToolbar.ToolbarButtons()
    MsgBox SF_String.Represent(arrToolbarButtons)
  
tip

Use o método ToolbarButtons sem argumentos para recuperar uma lista com todos os nomes de botões disponíveis na barra de ferramentas.


O exemplo abaixo alterna a visibilidade do botão Imprimir na barra de ferramentas Padrão:


    oDoc = CreateScriptService("Document", ThisComponent)
    oToolbar = oDoc.Toolbars("standardbar")
    oToolbarButton = oToolbar.ToolbarButtons("Imprimir")
    oToolbarButton.Visible = Not oToolbarButton.Visible
  
tip

O nome do botão passado como argumento para o método ToolbarButtons é o nome do botão localizado definido na caixa de diálogo Ferramentas - Personalizar - Barras de ferramentas.


note

As barras de ferramentas inativas não possuem botões. Portanto, chamar o método ToolbarButtons tornará a barra de ferramentas visível.


Em Python

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
    toolbar = doc.Toolbars("standardbar")
    arr_toolbar_buttons = toolbar.ToolbarButtons()
    bas.MsgBox(repr(arr_toolbar_buttons))
  

    bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
    toolbar = doc.Toolbars("standardbar")
    toolbar_button = toolbar.ToolbarButtons("Imprimir")
    toolbar_button.Visible = not toolbar_button.Visible
  

Propriedades

Nome

Somente leitura

Tipo

Descrição

Caption

Sim

String

Retorna o nome do botão.

Height

Sim

Long

Retorna a altura do botão, em pixels.

Index

Sim

Long

Retorna o índice do botão em sua barra de ferramentas pai.

OnClick

Não

String

Comando UNO ou script executado quando o botão é pressionado. Leia a página Scripting Framework URI Specification para aprender mais sobre como definir uma string URI.

Parent

Sim

Serviço Toolbar

Retorna uma instância do serviço Toolbar correspondente à barra de ferramentas pai do botão da barra de ferramentas atual.

TipText

Não

String

Especifica o texto da dica de ferramenta mostrado quando o usuário passa o mouse sobre o botão da barra de ferramentas.

Visible

Não

Boolean

Especifica se o botão da barra de ferramentas é visível ou não.

Width

Sim

Long

Retorna a largura do botão, em pixels.

X

Sim

Long

Retorna a coordenada X (horizontal) do botão, a partir do canto superior esquerdo, em pixels.

Y

Sim

Long

Retorna a coordenada Y (vertical) do botão, a partir do canto superior esquerdo, em pixels.


Uso do serviço ToolbarButton juntamente com o serviço PopupMenu

Um caso de uso comum das propriedades X e Y descritas acima é abrir um menu pop-up na posição onde o botão da barra de ferramentas está localizado.

Suponha que você crie o script abaixo e o associe a um botão chamado "Meu botão" na barra de ferramentas standardbar. Ao clicar no botão, um menu pop-up será mostrado com 3 opções para o usuário selecionar.

Em Basic

    Sub OpenPopupMenu()
        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        oDoc = CreateScriptService("Document", ThisComponent)
        oToolbar = oDoc.Toolbars("standardbar")
        oButton = oToolbar.ToolbarButtons("Meu Botão")
        oPopup = CreateScriptService("SFWidgets.PopupMenu", , oButton.X, oButton.Y + oButton.Height)
        oPopup.AddItem("Item A", "A")
        oPopup.AddItem("Item B", "B")
        oPopup.AddItem("Item C", "C")
        strResponse = oPopup.Execute(False)
        MsgBox "Sua escolha: " & strResponse
    End Sub
  
Em Python

    def open_popup_menu(args=None):
        bas = CreateScriptService("Basic")
        doc = CreateScriptService("Document", bas.ThisComponent)
        toolbar = doc.Toolbars("standardbar")
        toolbutton = toolbar.ToolbarButtons("Meu Botão")
        popup = CreateScriptService("PopupMenu", None, toolbutton.X, toolbutton.Y + toolbutton.Height)
        popup.AddItem("Item A", "A")
        popup.AddItem("Item B", "B")
        popup.AddItem("Item C", "C")
        response = popup.Execute(False)
        bas.MsgBox(f"Sua escolha: {response}")
  

Lista de Métodos no Serviço ToolbarButton

Execute


Execute

Executa o comando ou script associado ao botão da barra de ferramentas.

Este método retorna o valor retornado pelo comando ou script executado.

tip

Use a propriedade OnClick para determinar o comando ou script que deve ser executado. Se o comando/script não retornar nenhum valor, então Null será retornado.


Sintaxe:

svc.Execute(): any

Exemplo:

O exemplo abaixo executa o botão Imprimir da barra de ferramentas Padrão:

Em Basic

      oDoc = CreateScriptService("Document", ThisComponent)
      oToolbar = oDoc.Toolbars("standardbar")
      oToolbarButton = oToolbar.ToolbarButtons("Imprimir")
      oToolbarButton.Execute()
    
Em Python

      bas = CreateScriptService("Basic")
    doc = CreateScriptService("Document", bas.ThisComponent)
    toolbar = doc.Toolbars("standardbar")
    toolbar_button = toolbar.ToolbarButtons("Imprimir")
    toolbar_button.Execute()
    
warning

Todas as rotinas ou identificadores do ScriptForge em Basic que possuem o caractere "_" como prefixo são reservadas para uso interno. Elas não devem ser usadas em macros escritas em Basic ou em Python.


♥ Doe para nosso projeto! ♥