
A OpusWin permite definir e exibir Barras de Ferramentas como um controle de janela com um ou mais botões, sendo que cada botão pode ser associado à execução de procedimentos específicos.
As Barras de Ferramentas são formas alternativas ( mais rápidas, diretas e visuais) de se trabalhar de forma similar aos itens de menus.
A sintaxe geral utilizada para definir uma Barra de ferramentas é a seguinte:
ToolBar
STYLE <estilo1>
[BITMAP <bitmap_rc> <num_rc>]
BUTTON [<tipo> | <num>] <estilo2> [TIP <texto>] DO <proc>
EndToolBar
Onde:
<estilo1>
Indica o estilo da barra de ferramentas, podendo ser especificado como uma combinação dos estilos constantes na tabela que segue:
|
estilos da "ToolBar" |
Descrição |
|
TBSTYLE_ALTDRAG |
Permite que o usuário troque a posição de um botão dentro da barra de ferramentas, arrastado-o enquanto permanece apertada a tecla ALT. Não especificando este estilo, o usuário deverá pressionar a tecla SHIFT enquanto arrasta o botão. Para permitir a possibilidade de arrastar os botões de uma barra de ferramentas, deve ser especificado o estilo CCS_ADJUSTABLE. |
|
TBSTYLE_TOOLTIPS |
Cria o controle "ToolTip" que pode ser usado por um aplicativo para exibir algum texto descritivo associado a cada botão da ToolBar. |
|
TBSTYLE_WRAPABLE |
Cria uma ToolBar que poderá se desdobrar em múltiplas linhas de botões, quando não é possível conter todos os botões numa única linha. O desdobramento ocorre nos separadores, se houver. |
|
CCS_TOP |
Posiciona a ToolBar no topo da janela |
|
CCS_BOTTOM |
Posiciona a ToolBar no rodapé da janela |
<bitmap_rc>
Faz referência a um "bitmap resource", elaborado pelo usuário, contendo os ícones associados a cada um dos botões da barra de ferramentas. O Windows fornece "bitmap resources" predefinidos, cujos elementos recebem nomes padrão e podem ser utilizados conforme as necessidades.
O parâmetro <bitmap_rc> se refere a um arquivo do tipo .bmp, que deverá ser construído, previamente, pelo usuário. Geralmente as ferramentas IDE, por exemplo, VisualStudio, oferecem ferramentas de edição de ícones, DialogBox e ToolBars, entre outros.
<num_rc>
Especifica o identificador do bitmap resource referenciado em <bitmap-rc>. Cada comando bitmap, dentro de um mesmo programa OpusWin, deve especificar diferente <num_rc>.
[<tipo> | <num>]
Faz referência, de forma indexada, a cada um dos elementos de um "bitmap resource" (parâmetro <bitmap_rc>), que contém os ícones associados a cada um dos botões. O parâmetro <tipo> é o nome atribuído a cada elemento do "bitmap resource", podendo ser especificada a palavra SEPARATOR, para agrupar e separar os ícones. O parâmetro <num> especifica um número seqüencial atribuído a cada elemento do "bitmap resource". O Windows fornece alguns "bitmap resources", predefinidos, cujos elementos recebem os seguintes nomes padrão:
|
STD_COPY |
STD_PASTE |
STD_CUT |
|
STD_DELETE |
STD_FILESAVE |
STD_FILENEW |
|
STD_FILEOPEN |
STD_HELP |
STD_REPLACE |
|
STD_FIND |
STD_UNDO |
STD_REDOW |
|
STD_PRINT |
STD_PROPERTIES |
STD_PRINTPRE |
Alguns dos ícones do "bitmap resource" padrão do Windows são os seguintes:
|
------------------ |
botões 16X16 e 24X24 |
------------------ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<estilo2>
Especifica o estilo de cada botão dentro de cada Barra de Ferramentas, e determina a maneira como o botão vai aparecer e como ele vai responder quando acionado pelo usuário, podendo ser a combinação dos seguintes estilos.
|
Estilo para botões da ToolBar |
Descrição |
|
TBSTYLE_BUTTON |
Cria um botão, dentro da barra de ferramentas, que se comporta como um botão padrão do tipo "Push Buttons". |
|
TBSTYLE_CHECK |
Cria um botão que alterna seu estado entre pressionado e não pressionado cada vez que o usuário "clica" nele. O botão muda a sua cor de fundo quando fica no estado "pressionado". |
|
TBSTYLE_CHECKGROUP e TBSTYLE_GROUP |
Constrói grupos de botões em uma ToolBar, que funcionam de maneira similar aos controles do tipo "Check Buttons" numa caixa de diálogo. Cada botão acionado permanece no estado "pressionado" até que um outro botão do grupo seja acionado. |
|
TBSTATE_ENABLED |
Cria um botão que aceita ser acionado pelo usuário, ou seja, está disponível. Um botão "disabled" não aceita ser acionado e aparece "cinzento". |
|
TBSTYLE_SEP |
Cria separadores que facilitam a visualização dos grupos de botões. |
Tip <texto>
Indica que vai ser utilizado o recurso "Tool Tip", ou seja, um texto, a modo de "dica", associado a um ou mais dos botões da Barra de Ferramentas. A "dica" especificada em <text> será exibida sempre que o cursor permanecer posicionado sobre esse botão durante alguns segundos.
Do <proc>
Especifica o procedimento a ser executado quando esse botão for acionado.
As funções, apresentadas na tabela a seguir, permitem identificar se a "procedure" corrente foi chamada através do acionamento de um elemento da barra de ferramentas e, inclusive, qual o botão que foi "clicado" para chamar essa "procedure":
|
Função |
Descrição |
|
n=Button |
devolve, em variável numérica, o número identificador (opção <num> do comando Button) do botão "clicado" na barra de ferramentas. |
|
f=Istoolbar |
Devolve, em variável lógica, o valor TRUE (".T.") se a "procedure" corrente foi chamada a partir de um botão de barra de ferramentas. |
Veja a seguir um programa que utiliza os comandos e as funções das Barras de Ferramentas e um BitMap resource criado com os recursos do MS VisualStudio.
Exemplo
$nolib
prog
SetWindowText "OpusWin - Exemplo de ToolBar"
SetWindowIcon "world.ico"
ToolBar
style CCS_TOP TBSTYLE_ALTDRAG TBSTYLE_TOOLTIPS
bitmap "toolbar.bmp" 1
Button 1 TBSTYLE_BUTTON Tip "New File ..." do proc1
Button 2 TBSTYLE_BUTTON Tip "Open File ..." do proc1
Button SEPARATOR TBSTYLE_SEP
Button 4 TBSTYLE_BUTTON Tip "ShowText ..." do proc1
Buttons 5 TBSTYLE_BUTTON Tip "Progress Bar..." do proc1
Buttons SEPARATOR TBSTYLE_SEP
Buttons 7 TBSTYLE_BUTTON Tip "Exit ..." do proc1
EndToolBar
proc proc1
if istoolbar() = .t.
opt=button()
endif
varc="Exemplo de ToolBar ..."
do case
case opt=1
c=MessageBox(varc,"New File ...","O","I")
case opt=2
c=MessageBox(varc,"Open File...","O","I")
case opt=4
Showtext (02,10)
texto='Isto e uma linha de texto exibida pelo comando "ShowText"'
Showtext (02,10,texto,"Arial",1,"B/G")
case opt=5
c=MessageBox(varc,"Progress Bar...","O","I")
case opt=7
quit
endcase
return
