Página inicial English version of this page Quindigo Curriculum Vitae Pós-graduação em Games Pixel Pocketknife QuindiGUI Todopano Desenhos - Truco! Desenhos - Projeto Terrinha Desenhos - LíGia Desenhos - Habilidades Auditivas Desenhos - Acerte Sempre Desenhos - Caderno Ilustrado de Verbos Desenhos - Miscelânea

QuindiGUI

Na falta de algo mais criativo, QuindiGUI é o nome que dei a um ensaio de motor de interface gráfica escrito em C++ que fiz durante minhas horas livres.

Se você leu com atenção a página sobre o Pixel Pocketknife, pode ter percebido que gosto de polir bits e de ter o domínio dos detalhes do aplicativo. Na implementação do Pixel Pocketknife há uma hierarquia de classes de componentes visuais que encapsulam objetos oferecidos pelo Windows. Há também um motor de gerenciamento de posição e tamanho dos componentes visuais (gerenciador de layout). No código fonte do programa, crio os componentes visuais indicando quais as dependências de cada um deles e quais regras de posição e tamanho eles devem seguir. Esses recursos me permitem criar janelas completas, complexas e com estética, sem ter de explicitar tamanhos e distâncias literais, pois o motor é que faz as contas.

Mas eu queria mais! Esse motor de interface gráfica do PixPoc é totalmente dependente do Windows 32 bits. Eu queria o mesmo conceito de componentes visuais, porém com mais domínio dos eventos que eles disparam e a que estão sujeitos, e com mais controle de como eles são desenhados na tela. Comecei então a esboçar a QuindiGUI.

A ideia era isolar a dependência do sistema operacional e torná-la tão restrita quanto possível. A QuindiGUI pede do Windows apenas janelas "cruas" (sem barra de título, sem moldura, sem nada) e inputs básicos como os de mouse e teclado. O desenho das janelas, bem como a implementação de todos os componentes visuais que vão dentro delas, fica por conta da QuindiGUI. Em outras palavras, dos componentes visuais oferecidos pela aplicação, apenas as janelas têm um objeto Windows correspondente associado; todos os demais são "virtuais". Até mesmo o comportamento da janela, como o redimensionamento dela com o mouse, é implementado pela QuindiGUI. Perceba que essa abordagem me permitiria portar a QuindiGUI para outro sistema operacional com relativa facilidade: assumindo que eu dispusesse de um compilador C++ compatível, somente a porção dependente do SO teria de ser reescrita.


Screenshot do aplicativo que ilustra a QuindiGUI

Até parece que assinei minha confissão de insanidade mental, porque eu quis fazer o que o sistema operacional já faz para mim. Mas tempos depois desse ensaio eu comecei a trabalhar com software para celular e constatei que a ideia não é nada de mais. Deixei essa iniciativa para trás porque consome tempo demais e gera retorno de menos.

Gastei algum tempo com a QuindiGUI entre abril de 2006 e abril de 2007. No final de janeiro de 2007, quebrei o braço e fiquei umas cinco semanas afastado de meu trabalho na Vivo - esse período foi muito generoso para a QuindiGUI.

Download

O quê? Você enlouqueceu e quer ver essa geringonça rodando?! Eis sua chance!

Faça download do Zip indicado abaixo e extraia seu conteúdo em uma nova pasta qualquer. Dentro do Zip há somente um executável e uma imagem no formato ícone que pode ser aberta com o Pixel Pocketknife. Execute então o aplicativo sem medo. Ele é inofensivo e a única alteração que ele fará em seu computador será gerar um arquivo texto de log da execução na mesma pasta. Enquanto o aplicativo rodar, passeie com o mouse sobre os componentes, dê alguns cliques e teste a reação deles. (Não há mais do que isso para ver.)

  TesteQuindiGUI.zip   (56,7 KB - somente em Português)