segunda-feira, 13 de abril de 2009

FXMainWindow

Já que nosso último tutorial foi sobre criar uma janela vazia, usando FXMainWindow, falarei agora especificamente sobre essa classe.

Descrição
A MainWindow é normalmente a janela central de uma aplicação. Aplicações podem ter qualquer número de janelas principais.

Quando uma MainWindow é fechada, ela envia uma mensagem SEL_CLOSE para o seu alvo; o alvo deve retornar 0 se não houver nenhuma objeção contra o fechamento, e 1 caso contrário.

Depois que a mensagem SEL_CLOSE for enviada e nenhuma objeção for levantada, a janela principal deletará a si mesma.

Declaração

1 class FXAPI FXMainWindow : public FXTopWindow {
2 FXDECLARE(FXMainWindow)
3 protected:
4 FXMainWindow(){}
5 private:
6 FXMainWindow(const FXMainWindow&);
7 FXMainWindow &operator=(const FXMainWindow&);
8 public:
9
10 /// Constrói uma janela principal
11 FXMainWindow(FXApp* a, const FXString& name,
12 FXIcon *ic = NULL, FXIcon *mi = NULL,
13 FXuint opts = DECOR_ALL,
14 FXint x = 0, FXint y = 0,
15 FXint w = 0, FXint h = 0,
16 FXint pl = 0, FXint pr = 0,
17 FXint pt = 0, FXint pb = 0,
18 FXint hs = 0, FXint vs = 0
19 );
20
21 /// Cria os recursos do servidor (server-side)
22 virtual void create();
23
24 /// Destrutor
25 virtual ~FXMainWindow();
26 };

Sim, ela é só isso.

Discussão

1: A classe FXMainWindow é derivada de FXTopWindow. Por isso ela é pequena desse jeito, toda a funcionalidade dela é herdada das superclasses. E a hierarquia não é pequena:



Obs.: Em tópicos deste tipo, tratarei de apenas uma classe, ou seja, vou me limitar ao que a declaração da classe apresenta.

11-19: Construtor. Recebe 15 parâmetros:
  • FXApp *a - Ponteiro para a aplicação.
  • FXString &name - Título da janela.
  • FXIcon *ic, FXIcon *mi - Ícones da janela.
    • Ícone grande, que aparece quando se troca de janela com Alt+Tab
    • Ícone pequeno, que aparece no canto superior esquerdo da janela

  • FXuint opts - Opções da janela.
    Essas opções referem-se às decorações da janela, e são definidas em FXTopWindow.h. Chegaremos lá.

  • FXint x, FXint y - Posição inicial da janela.
  • FXint w, FXint h - Largura e altura da janela.
  • FXint pl, FXint pr, FXint pt, FXint pb - Espaçamento entre os componentes e a borda da janela.
    Uma MainWindow é um gerenciador de layout (layout manager), portanto aceita esses parâmetros. Quando falarmos de gerenciadores de layout, explicarei melhor.

  • FXint hs, FXint vs - Espaçamento entre um componente e outro.
    Idem.

Percebam que apenas a aplicação e o título da janela são obrigatórios. Todos os outros parâmetros têm valores default, ou seja, podem ser omitidos. Outra vantagem do FOX Toolkit: os parâmetros default asseguram um layout agradável aos olhos.

Observações
  1. A descrição da classe foi retirada da própria documentação de referência.
  2. O gráfico de herança foi desenhado com o programa Dia.

Links

Nenhum comentário: