A estrutura de diretórios do VDesk está organizada da seguinte forma:
VDesk/
├── bin/
│ ├── Release/
│ └── Debug/
├── src/
│ ├── Nucleo/
│ ├── Interface/
│ ├── Utilitarios/
│ └── ProgramaPrincipal.cpp
├── config/
│ ├── configuracoes.json
│ └── log_config.conf
├── docs/
│ ├── LEIAME.md
│ └── CONTRIBUINDO.md
├── testes/
│ ├── TestesUnitarios/
│ └── TestesIntegracao/
├── LICENCA
└── LEIAME.md
Descrição dos Diretórios
bin/: Contém os executáveis compilados, separados nas versõesReleaseeDebug.src/: Diretório do código-fonte, incluindo a lógica central (Nucleo/), interface gráfica (Interface/), classes utilitárias (Utilitarios/) e o arquivo principal (ProgramaPrincipal.cpp).config/: Diretório de configurações, contendo o arquivo de definições da aplicação (configuracoes.json) e a configuração de logs (log_config.conf).docs/: Documentação, incluindo oLEIAME.md(README) eCONTRIBUINDO.md(guia de contribuição).testes/: Testes automatizados, com subpastas para testes unitários e de integração.LICENCA: Arquivo de licença do projeto.LEIAME.md: Arquivo de descrição principal do repositório.
Arquivo de Inicialização
O ponto de entrada da aplicação é o arquivo ProgramaPrincipal.cpp, localizado em src/. Ele é responsável por preparar o ambiente e iniciar o loop principal. Veja o conteúdo simplificado:
#include "Nucleo/GestorDeJanelas.h"
int main(int argc, char* argv[]) {
GestorDeJanelas gestor;
if (gestor.inicializar(argc, argv)) {
gestor.executar();
}
return 0;
}
Explicação do Arquivo Principal
#include "Nucleo/GestorDeJanelas.h": Inclui o cabeçalho da classe central do gerenciador.int main(int argc, char* argv[]): Função principal, ponto de partida do programa.GestorDeJanelas gestor;: Cria uma instância do gerenciador que controla as áreas de trabalho virtuais.gestor.inicializar(argc, argv): Inicializa o gerenciador com os argumentos da linha de comando.gestor.executar(): Inicia o loop principle da aplicação.
Arquivos de Configuração
Os arquivos de configuração estão em config/ e controlam o comportamento da aplicação.
configuracoes.json
Este arquivo armazena as opções do usuário, como dimensões da janela e idioma. Exemplo:
{
"janela": {
"largura": 800,
"altura": 600
},
"idioma": "pt_BR",
"log": {
"nivel": "info",
"arquivo": "logs/app.log"
}
}
log_config.conf
Define o comportamento do sistema de logs. Exemplo:
[loggers]
keys=raiz
[handlers]
keys=arquivoHandler
[formatters]
keys=formatoSimples
[logger_raiz]
level=INFO
handlers=arquivoHandler
[handler_arquivoHandler]
class=FileHandler
level=INFO
formatter=formatoSimples
args=("logs/app.log", "a")
[formatter_formatoSimples]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S
Descrição dos Arquivos de Configuração
configuracoes.json: Contém preferências como tamanho da janela, idioma e configuração de log.log_config.conf: Configura o nível de log, destino e formato das mensagens.
Este guia cobre a estrutura básica, o ponto de entrada e as configurações do VDesk. Com essas informações, é possível compreender como o projeto está organizado e como personalizar seu comportamento.