Dados do Aluno Topo
- Nome: Vinicius Stein Dani
- Matrícula: 2711169
Descrição Topo
O objetivo deste trabalho é desenvolver um programa que implemente as funcionalidades de um menu de formatação de texto (Ver Enunciado). "Quebra de linha" e "Seleção de Texto (Mouse)" foram definidas como funcionalidades "Bônus". Além dessas funcionalidades, também fora implementada uma de integração com o Twitter. Havendo 140 caracteres ou menos, o usuário pode clicar sobre o contador e, assim, seu texto poderá ser Twittado (Obs.: o Internet Explorer será chamado).
Características Gerais:
- Aplicativo:
- primou-se pela organização do código; por isso, adotou-se o design pattern MVC (Model View Controler) e criou-se uma padronização na nomenclatura de funções, com intuito de facilitar a vida do corretor do trabalho e de quem quiser implementar novas funcionalidades para o programa;
- utilizou-se as seguintes estruturas de dado: lista encadeada (lista simplesmente encadeada e lista duplamente encadeada).
- Janela do Aplicativo:
- é possível alterar a altura e a largura da janela do aplicativo;
- os itens de interface do aplicativo se reposicionam de acordo com a altura e a largura da janela.
- Texto:
- é possível inserir caracteres na posição do cursor até a última posição de cada linha;
- para inserir texto nas demais linhas, deve-se acessar tais linhas através do uso da tecla Enter
- só é possível inserir caracteres na posição do cursor caso a linha na qual se deseja inserir o caractere já tenha sido acessada;
- caso haja uma tentativa de inserir-se um caractere numa posição "x + 10", sendo a posição do último caractere inserido na linha "x + 2" e tendo "x" como a posição inicial da linha, o cursor será automaticamente levado para a posição "x + 4" e o novo caractere será inserido na posição "x + 3";
- é possível deletar (tanto através de Backspace como através de Delete) qualquer caractere contido numa linha;
- ao utilizar-se o Backspace na primeira posição de uma linha, nada acontece;
- não, não é utilizada a última coluna da área textual para a escrita.
- Texto - Seleção (Mouse):
- é possível selecionar, como em qualquer editor de texto, quantos caracteres/linhas de texto forem necessárias, através do "click-hold-move-release" do mouse;
- para deselecionar um texto selecionado, basta clicar em qualquer ponto da área de texto ou em algum botão de formatação de cor;
- a seleção de caracteres em mais de uma linha não está 100% implementada.
- Texto - Formatação:
- é possível redefinir cor de fundo e de texto;
- é possível definir um texto como "Itálico", "Negrito" e "Sublinhado", bem como todas as combinações entre essas três formatações; entretanto, essa funcionalidade não funciona para alterar, através de seleção de texto com o mouse, texto já inserido;
- não fora implementada a funcionalidade marcar/desmarcar botão de formatação automaticamente.
Observações:
- é muito provável que algumas características não tenham sido expressos acima; quem fizer o download do código-fonte terá acesso a mais comentários e detalhes quanto ao presente trabalho;
- modéstia à parte, é pouco provável que "bugs" sejam encontrados no presente trabalho. O que muito provavelmente poderá acontecer, é que determinadas funcionalidades "tradicionais" num editor de texto não sejam aqui encontradas (como, por exemplo, escrita contínua ao longo das linhas disponíveis na área de texto). Todavia, caso alguém encontre algum "bug", favor entrar em contato expondo os passos de como simular o mesmo. Grato ;)
Screenshots Topo
Abaixo é possível observar algumas telas expondo explicitamente algumas funcionalidades do programa desenvolvido.
É possível observar o uso da funcionalidade "Escrita em Múltiplas Linhas" (Figura 2), "Seleção de Texto" (Figura 3) e "Formatação de Texto" (Figura 4). Ao clicar sobre o contador (último botão do menu), havendo 140 caracteres ou menos no texto, é chamada uma função que permite Twittar o texto inserido.
Downloads Topo
O Código-Fonte deste Trabalho é distribuído sobre a GPL . Comece já a Twittar a partir de um aplicativo Desktop totalmente inovador! ^^