quinta-feira, 23 de abril de 2009

Botões: Botão simples

Retornando aos tutoriais básicos, falarei agora rapidamente sobre criar um botão na interface. Também os detalhes são diversos aqui, portanto este também é o primeiro tópico de uma série sobre os botões que o FOX Toolkit disponibiliza.

Neste primeiro tópico, criarei apenas um botão que se expande pela janela inteira e não está associado a nenhum evento (falarei mais tarde sobre tratamento de eventos).

Vamos lá, então.

FoxTutorialMainWindow.cpp

22   new FXButton(this, "Hello, &FOX!", NULL, NULL, 0,
23 BUTTON_NORMAL|LAYOUT_FILL);

Pronto, o botão está criado.

Discussão

FXButton é a classe FOX para um botão simples, que você pressiona, solta, e ele executa uma ação. Aqui eu instancio um novo objeto dessa classe. Novamente, sem a necessidade de atribuir a um ponteiro, pois a própria janela se encarregará de liberá-lo.

Os parâmetros que foram passados:
  • this: significa que o botão será colocado dentro da própria janela principal.
  • "Hello, &FOX!": texto que aparecerá no botão. O & significa a letra que servirá de mnemônico, no caso F. Assim, Alt+F é o atalho para pressionar o botão. Existem outros detalhes dentro do texto do botão, que serão discutidos mais adiante.
  • NULL: o ícone do botão. Aqui é criado um botão somente com texto, então fica nulo mesmo.
  • NULL: o alvo da mensagem. Como ele não lança nenhum evento, nulo.
  • 0: a mensagem que o botão envia. Novamente, ele não lança nenhum evento: zero.
  • BUTTON_NORMAL|LAYOUT_FILL: opções do botão. BUTTON_NORMAL significa um botão com borda grossa e elevada, com o texto centralizado e o ícone à esquerda. LAYOUT_FILL significa que ele será expandido para ocupar a janela inteira. Esses detalhes serão explicados em seu devido tempo.

As demais opções referem-se à posição, tamanho e espaçamentos do botão, e normalmente não é necessário informá-los, pois têm valores padrões.

Resultado


Lembrando que FXMainWindow é um gerenciador de layout, redimensionar a janela fará com que o botão seja automaticamente redimensionado.

---
Código-fonte para este tutorial.

Nenhum comentário: