PBToolboxAI v4 ← Site

buttonbar — u_pbt_buttonbar #

← Referência dos componentes · Índice do guia

buttonbar alinha uma fila de botões de comando — ícone, rótulo ou ambos — num único componente. Um clique reporta o id do botão (ue_clicked); cada botão é controlado por um handle (of_button) para o desativar, colorir ou ocultar. O componente a preferir assim que há vários botões: um WebView2 para toda a barra, onde N button separados custariam N.

▶ Ver ao vivo — Aplicação de demonstração, mosaico Button bar, com o código e esta página lado a lado.


Início rápido #

// A command bar in three lines
uo_bar.of_add_button(/*key*/ "save", /*image_file*/ "mono:img\packimages.dll:svg/samples/save", /*text*/ "Save")
uo_bar.of_add_button(/*key*/ "find", /*image_file*/ "mono:img\packimages.dll:svg/samples/find", /*text*/ "Find")
uo_bar.of_add_button(/*key*/ "copy", /*image_file*/ "", /*text*/ "Copy")   // no icon

// Grey out a button
uo_bar.of_button(/*key*/ "copy").ib_enabled = false

// React : ue_clicked carries the button key
// (in the ue_clicked event of the component)
CHOOSE CASE as_key
	CASE "save" ; wf_save()
	CASE "find" ; wf_find()
END CHOOSE

Propriedades #

PropriedadeTipoPredefinidoDescrição
ii_padding_xinteger12Recuo esquerdo/direito da barra, em pixels: o espaço antes do primeiro botão e depois do último. 0 cola os botões às bordas; -1 = o do tema
ii_padding_yinteger12Recuo superior/inferior da barra, em pixels. Um botão PREENCHE a altura da barra: este recuo decide a altura dos botões (barra mais alta ou recuo menor = botões mais altos). 12 por predefinição; -1 = o do tema
ii_gapinteger-1Espaço ENTRE dois botões, em pixels. -1 (predefinição) = o do tema. 0 junta os botões, separados por uma linha quando o tema a tem
is_alignstringendAlinha a fila: start (esquerda), center, end (direita, predefinição, como uma caixa de diálogo) ou justify (botões de igual largura em toda a largura). Valores lógicos (RTL) — constantes ALIGN_*
is_defaultstring""Chave do botão predefinido — a ação principal, pintada com o acento, que Enter aciona (como o OK de uma caixa de diálogo). Quando um botão da barra tem o foco do teclado, Enter aciona ESSE botão, que passa a ter o aspeto predefinido (a convenção do Windows); is_default relido continua a ser a chave posta. Um predefinido desativado ou oculto não toma o Enter: a tecla fica com a janela. Quando duas barras da mesma janela têm um botão predefinido (duas folhas MDI, dois painéis), o Enter vai para a do lado do foco. O papel sai com o seu botão: removê-lo, ou esvaziar a barra, esvazia is_default. Vazio = nenhum; apenas um botão predefinido de cada vez
is_cancelstring""Chave do botão cancelar — o que Esc aciona (como o Cancelar de uma caixa de diálogo). Desativado ou oculto, não toma o Esc. O papel sai com o seu botão: removê-lo, ou esvaziar a barra, esvazia is_cancel. Vazio = nenhum; apenas um botão cancelar de cada vez
is_theme_stylestring""Estilo visual do componente (constantes THEME_STYLE_*); vazio = o da aplicação, seguido a cada mudança
is_theme_modestring""Variante clara ou escura (constantes THEME_MODE_*); vazio = a da aplicação, seguida a cada mudança
il_theme_accentlong-1Cor de destaque deste componente (-1 = destaque da aplicação, ou o do tema)
is_tooltipstring""Tooltip simples apresentado ao passar sobre o componente
is_super_tooltip_titlestring""Título do tooltip enriquecido (prevalece sobre is_tooltip)
is_super_tooltip_textstring""Texto do tooltip enriquecido (aceita marcação enriquecida)
is_super_tooltip_imagestring""Imagem do tooltip enriquecido

Métodos #

MétodoFunção
of_add_button (string as_key, string as_image_file, string as_text) → longAdiciona um botão de comando (id, ficheiro de imagem, rótulo) no fim da barra. mono: na imagem recolore-a ao tema; um rótulo vazio faz um botão só ícone. Devolve 0, -5 com chave vazia, uma chave que contém / ou uma barra vertical, uma chave já presente na barra ou sem imagem nem texto
of_insert_button (string as_key, integer ai_index, string as_image_file, string as_text) → longInsere um botão de comando na posição ai_index (a partir de 1), deslocando os restantes. Devolve 0, -5 com chave vazia, uma chave que contém / ou uma barra vertical, uma chave já presente na barra ou sem imagem nem texto
of_remove_button (string as_key) → longRemove um botão pela sua chave; os restantes mantêm o seu estado vivo. A sua letra Alt, os atalhos que a aplicação lhe deu, o seu papel predefinido / cancelar, as suas cores e a sua tooltip saem com ele. Devolve 0, -5 com chave vazia ou uma chave que não nomeia nenhum botão
of_move_button (string as_key, integer ai_index) → longMove um botão para a posição ai_index (a partir de 1) sem perder o seu estado vivo. Devolve 0, -5 com chave vazia ou uma chave que não nomeia nenhum botão
of_clear_buttons ( ) → longRemove todos os botões da barra, com as suas letras Alt, os atalhos que a aplicação lhes deu, os papéis predefinido / cancelar, cores e tooltips. Devolve 0, -2 se não criado
of_focus_button (string as_key) → longPõe o foco do teclado num ÚNICO botão — Não em vez de Sim perante uma pergunta destrutiva, para que o Enter responda Não. Devolve 0, -5 com chave vazia ou que não nomeia nenhum botão, -4 se o botão não o pode tomar (desativado, oculto ou não desenhado em modo demo), -2 se não criado
of_register_shortcut (string as_chord, string as_key) → longDá a UM botão um atalho de teclado (Ctrl+S, F5…): premido em qualquer ponto da janela, aciona o botão (ue_clicked), mesmo com o foco noutro lado. É independente da letra Alt do botão: desativá-lo, mudar a sua letra ou reativá-lo nunca lhe toca. Uma combinação vazia remove-o. Numa barra um atalho nomeia sempre um botão: a forma com um argumento, ou uma chave que não nomeia nenhum botão, devolve -5. Devolve 0, -2 se não criado
of_button (string as_key) → n_pbt_buttonbar_buttonDevolve o handle de um botão (por id) para ler ou alterar as suas propriedades (ver abaixo)

Eventos #

EventoQuando
ue_clicked (string as_key)Um botão foi usado: um clique, Enter (o botão predefinido, ou o que tem o foco), Esc (o botão cancelar), a sua letra Alt ou um atalho registado nele. A sua chave é passada: uma aplicação que liga o Cancelar deve esperá-lo também pelo Esc. Um botão desativado não emite nada

Propriedades de um botão (of_button) #

PropriedadeTipoPredefinidoDescrição
ib_enabledbooleantrueAtiva ou desativa um botão; desativado, não se clica e nem o Enter, nem o Esc, nem o seu atalho o acionam
ib_visiblebooleantrueMostra ou oculta um botão; oculto, mantém o lugar e regressa onde estava
is_textstring""Rótulo do botão; alterar após adicionar. Um botão mantém um rótulo ou um ícone: esvaziar o rótulo de um botão sem ícone é recusado, e o rótulo relê-se inalterado
is_imagestring""Ícone do botão (ficheiro de imagem; mono: segue o tema); alterar após adicionar. Esvaziar o ícone de um botão sem rótulo é recusado. Um botão só com ícone é anunciado ao leitor de ecrã pela sua tooltip (is_tooltip), senão pela sua chave
il_badgelong0Pequeno emblema de contagem no canto do botão (0 = nenhum)
is_shortcutstring""Mnemónico deste botão: Alt+a letra aciona-o, de qualquer ponto da janela, e a letra é sublinhada na sua etiqueta. Uma letra (usa-se a primeira); vazio = nenhuma. Um atalho registado explicitamente para a mesma tecla (of_register_shortcut) passa à frente da letra; um menu PB que usa a mesma letra perde-a enquanto o botão puder acionar-se. Enquanto o botão está desativado, oculto ou não desenhado em modo demo, a sua letra fica para a janela
il_back_colorlong-1Fundo DESTE botão (-1 = o do componente, que segue o tema)
il_text_colorlong-1Cor do texto DESTE botão (-1 = a do componente)
il_back_color_hoverlong-1Fundo DESTE botão ao passar (-1 = o do componente)
il_text_color_hoverlong-1Cor do texto DESTE botão ao passar (-1 = a do componente)
il_accentlong-1Destaque DESTE botão (-1 = destaque do componente)

Herdado da base comum #

Estes membros existem em todos os componentes visuais — não são próprios deste. São detalhados uma só vez, nos capítulos transversais; esta tabela apenas diz onde os ler.

MembrosFunçãoDetalhado em
of_count · of_keys_at · of_hasPercorrer o que o componente contém3.2 Os items
of_resetRepor o componente a zero3.6 Repor um componente a zero: of_reset()
of_register_shortcut · of_clear_shortcutsAtalhos de teclado do componente3.5 Os atalhos de teclado
of_is_created · of_is_ready · of_get_last_errorSe nasceu, se está pronto, o que falhou3.7 Diagnóstico
of_save_as_png · of_save_as_jpgExportar a renderização como imagem3.8 Exportar a representação como imagem
of_set_redrawAgrupar as alterações num único repinte3.10 Boas práticas
of_preload_iconsÍcones mostrados sem atrasoApresentação instantânea: of_icon
of_set_translationTraduzir uma legenda do componente5.2 Adaptar uma etiqueta: of_set_translation
of_focus_webviewDar o foco ao componente6.4 Teclado e focus
of_print · of_print_to_pdfImprimir, ou escrever um PDF6.9 Imprimir
of_set_property · of_get_property · of_component_nameControlar uma propriedade pelo nome3.1 O motor de propriedades

← Referência dos componentes · Índice do guia