Projeto Funcional

Organizado por Jorge Kawamura e Paulo Guilherme Seifer

[Vânio F. de Melo, José A. L. Minchola e Mercedes G. Marquez] [Luiz F. S. Wetzel] [Jorge Kawamura e Paulo Guilherme Seifer] [Harlen C. Batagelo]

Referente: Lista N° 3

Matéria: Interfaces Gráficas

Aluno:

Data : Segunda, 09 / 10 / 2000
 
 

Projeto Funcional do seu editor gráfico: Diálogo e Visual
 
 

Projeto Diálogo

Estilo ou forma de diálogo a serem considerados: · WYSIWYG

· Menu

· Icônica

Modo de diálogo: · Currently-selected-object (CSO) Sintaxe: · Pré-fixo Projeto Visual

Para projetar nosso desenho visual foram reconsiderados os objetos e as operações sobre os objetos a serem realizadas no editor gráfico solicitado no exercicio da Lista N° 2. Assim.

Objetos: linha, triângulo, retângulo, circunferência e arquivo.

Operações sobre os objetos:

· Linha.- criar, deletar, mover extremos, mover linha, mudar estilo.

· Triângulo.- criar, deletar, mover triângulo, mudar estilo.

· Circunferência.- criar, deletar, mover circunferência, mudar estilo.

· Retângulo.- Criar, deletar, mover retângulo, mudar estilo.

· Arquivo.- Abrir, Salvar, Imprimir.

Como mostrado, além de considerar os objetos: linha, circunferência, triângulo e retângulo, foi adicionada também a posibilidade de armazenagem da informação criada e/ou editada.

Desta maneira projetamos a seguinte tela para a apresentação do nosso editor.
 
 

Figura1: Desenho da tela do editor gráfico
 
 

Figura2: Submenus hierárquicos

As regras usadas para organizar os ícones e menus foram:

· Similaridade

· Proximidade

· fechadura

Os princípios usados no desenho têm sido: · Proporção

· Balanceamento
 
 

 Considerações:

· Como pode ser observado foi incluída no menu principal, a opção de Ajuda na

qual será fornecido um manual de auxílio para o usuário. Além disso quando

apontada a entidade (ícone ou menu) será mostrada uma descrição breve do

comando ou tarefa. Estas considerações visam acomodar os diferentes níveis de

habilidades dos usuários.

· Para minimizar as possibilidades de erro, será considerado um estado em que

somente os comandos aplicáveis ao objeto selecionado estejam habilitados.

· Para recuperar erro, será considerada a possibilidade de cancelar o comando.

Por exemplo gravar e deletar.
 
 

Figura 3: Desenho da tela do editor gráfico







 

Disciplina : IA369J

Luiz Fernando Stein Wetzel
 
 

Projeto Funcional do seu editor gráfico. Diálogo, visual.
 
 

Classe CIA369Jdoc

Descrição: Objeto onde são armazenados os dados. Estes dados serão salvos e recuperados de arquivos.


Função: New_line
Parametros: Nenhum

Descrição: Adiciona uma reta com atributos default no documento

Feedback: A nova reta é mostrada na tela

Erros: Nenhum


Função: New_triangle

Parametros: Nenhum

Descrição: Adiciona um triângulo com atributos default no documento

Feedback: O novo triângulo é mostrado na tela

Erros: Nenhum


Função: New_rectangle

Parametros: Nenhum

Descrição: Adiciona um retângulo com atributos default no documento

Feedback: O novo retângulo é mostrado na tela

Erros: Nenhum


Função: New_circle

Parametros: Nenhum

Descrição: Adiciona um círculo com atributos default no documento

Feedback: O novo círculo é mostrado na tela

Erros: Nenhum


Função: Move_up

Parâmetros: Referência a um objeto gráfico (reta, triângulo, retângulo ou circulo)

Descrição: Move objeto um nível acima no eixo z.

Feedback: O objeto é redesenhado na nova posição

Erros: Quando o objeto já está no topo.


Função: Move_down

Parâmetros: Referência a um objeto gráfico (reta, triângulo, retângulo ou circulo)

Descrição: Move objeto um nível abaixo no eixo z.

Feedback: O objeto é redesenhado na nova posição

Erros: Quando o objeto já está na base.


Função: Move_top

Parâmetros: Referência a um objeto gráfico (reta, triângulo, retângulo ou circulo)

Descrição: Move objeto para o topo (eixo z)

Feedback: O objeto é redesenhado na nova posição

Erros: Nenhum.


Função: Move_bottom

Parâmetros: Referência a um objeto gráfico (reta, triângulo, retângulo ou circulo)

Descrição: Move objeto para o fundo (eixo z)

Feedback: O objeto é redesenhado na nova posição

Erros: Nenhum.


Classe CGraphObj

Descrição: Objeto gráfico genérico. Os objetos específicos são derivados deste e devem implementar as funções virtuais descritas a seguir.


Data Member: m_cor

Tipo: COLORREF

Descrição: define a cor do objeto


Data Member: m_ptRef

Tipo: POINT

Descrição: Ponto de referêcia.Todos outras coordenadas que o objeto define devem ser em relação a este ponto.


Data Member: m_zorder

Tipo: LONG

Descrição: Indica a posição do objeto no eixo z. A função Draw deve ser chamada em ordem crescente de zorder.


Data Member: m_deleted

Tipo: BOOL

Descrição: Indica que o objeto foi "deletado", não devendo portantos ser desenhado ou salvo em arquivo. Este flag é colocado para facilitar a implementação da pilha de Undo.


Função: Move

Parâmetros: Nova Posição

Descrição: Move objeto para nova posição

Feedback: O objeto é redesenhado na nova posição

Erros: Nenhum.


Função: Draw

Tipo: Virtual

Parâmetros: pDC     - Contexto onde deve ser desenhado o objeto.

                        bSelected –   TRUE     -           Desenha objeto selecionado

                        FALSE         -  Desenha objeto não selecionado

Descrição: Desenha o objeto.

Feedback: O desenho do objeto.

Erros: Nenhum.


Função: Test_point

Tipo: Virtual

Parâmetros: pt - Ponto que deve ser testado.

Descrição: Testa um ponto.

Feedback: O cursor do mouse deve ser desenhado de acordo com o retorno desta função.

Retorno: Valor formado a partir dos seguites bits:

            PTTEST_INSIDE - Ponto interno ao objeto

            PTTEST_HANDLE - Ponto pertence a um handle (pode ser arrastado para alterar a forma de um objeto)

            PTTEST_BOUND_RECT - Ponto pertence ao retângulo que envolve a figura.

Erros: Nenhum


Função: Grab_point

Tipo: Virtual

Parâmetros: pt - Ponto que será movido.

Descrição: Inicia uma operação de movimentação ou alteração da forma de um objeto através do mouse.

Feedback: O objeto gráfico deve ser redesenhado na nova posição ou com a nova forma quando a função Move_point for
chamada.

Retorno: TRUE se arrastar o ponto pt for alterar o objeto em questão

                FALSE se pt não deslocar nem deformar o objeto

Erros: Nenhum


Função: Release_point

Tipo: Virtual

Parâmetros:  pt            - Posição final do ponto que estava sendo arrastado

                      Success   - TRUE – Finaliza a operação

                                       - FALSE – Cancela a operação

Descrição: Finaliza uma operação de drag and drop de um objeto. Termina um comando de drag and drop iniciado com a chamada de Grab_point.

Feedback: O objeto deve ser desenhado na sua posição final (em caso de sucesso) ou voltar para sua posição de origem (caso o comando seja cancelado, ou seja Success = FALSE)

Retorno : O retângulo que engloba a área que deve ser redesenhada.

Erros: Nenhum



 

Função: Move_point

Tipo: Virtual

Parâmetros:  pt         - Posição para onde o ponto indicado em Grab_point foi movido.

Descrição: Esta função deve ser chamada após a chamada de Grab_point quando o mouse é movido. Quando for chamada a função Draw a figura desenhada deve refletir este estado.

Retorno: Retângulo que engloba a área que deve ser redesenhada.

Erros: Nenhum


Função: Show_properties

Tipo: Virtual

Parâmetros: Nenhum

Descrição: Mostra um diálogo que apresenta e permite alteração das propriedades do objeto.

Feedback: O diálogo é apresentado

Retorno: TRUE – houve alteração de propriedades.

                FALSE – não houve alteração de propriedades.

Erros: Nenhum


Classe CLineObj : public CGraphObj
 

Data Member:  m_pt1, m_pt2;

Tipo:                POINT

Descrição:        Extremos da reta.  A posição dos pontos é relativa a ptRef.


Data Member:  m_style

Tipo:              LONG

Descrição:        Define o estilo da reta.


Data Member:  m_pDefaultProps

Tipo:                CLineObj*       ( static )

Descrição:        Membro estático que contém as propriedades default.


Classe CTriangObj : public CGraphObj
 

Data Member: m_pt1, m_pt2, m_pt3;

Tipo:                POINT

Descrição:        Vértices do triângulo


Data Member:  m_pDefaultProps

Tipo:                CTriangObj *   ( static )

Descrição:        Membro estático que contém as propriedades default.


Classe CRectObj : public CGraphObj
 

Data Member:  m_left, m_top, m_bottom, m_right;

Tipo:                LONG

Descrição:        Lados do retângulo


Data Member:  m_pDefaultProps

Tipo:                CRectObj *     ( static )

Descrição:        Membro estático que contém as propriedades default.


Classe CCircleObj : public CGraphObj
 

Data Member:  m_center;

Tipo:                POINT

Descrição:        Centro do círculo


Data Member:  m_radius;

Tipo:                LONG

Descrição:        Raio do círculo


Data Member:  m_pDefaultProps

Tipo:                CCircleObj *   ( static )

Descrição:        Membro estático que contém as propriedades default.
 



 

Referente: IA369J – Lista N° 3 – Projeto Funcional

Alunos: Jorge Kawamura e Paulo Guilherme Seifer
 
 

Projeto Visual

Este é um esboço da interface do aplicativo gráfico 2D, este esboço foi desenvolvido dentro do Delphi.

Observação: já que as figuras abaixo são apenas esboços (pré projetos) visuais, isto é, são idéias do projeto visual (Interface homem máquina), estes poderão ser alterados no decorrer do seu desenvolvimento.

Podemos notar que (Figura acima) que o projeto visual consiste em uma área de desenho, alguns dos botões aceleradores, caixa de edição de comandos e uma barra de status, cada um destes items correspondem a: local onde podemos inserir as primitivas; botões que substituem as linhas comandos, onde ao clicarmos no botão desejado este realizará a linha de comando; colocar o comando desejado via teclado o e programa interpretará o conteúdo digitado e indicará o status de cada comando, isto é, indicará o comando selecionado, se o usuário necessita colocar algum valor ou exibirá alguma mensagem do sistema.

As figuras acima consistem na exibição do conteúdo do Menu.



 

Referente: 2 – Projeto Funcional

Aluno: Harlen C. Batagelo
 
 

2.1 - PROJETO DE DIÁLOGO

2.2 - PROJETO VISUAL

O editor é composto de uma barra de menu, uma barra de status, uma barra de ferramentas de comandos, uma barra de ferramentas de seleção de cores e uma barra de ferramentas de seleção de largura e estilo das linhas. O alfabeto visual segue aquele utilizado pelo MS Windows 95. Os botões das barras de ferramentas seguem o estilo do MS Office 97/Internet Explorer, isto é, com relevo ativado somente quando o cursor do mouse é posicionado sobre os mesmos.

Todas as barras de ferramentas possuem tooltips e podem ser posicionadas em qualquer lugar da janela. Os comandos de manipulação de arquivos, exibição de barras de ferramentas e seleção de ferramentas possuem teclas aceleradoras.

2.2.1 - MENU

O editor possui uma barra de menu principal, localizada na parte superior da janela, contendo os seguintes comandos:
 

File
    New (Ctrl+N)
    Open (Ctrl+O)
    Save (Ctrl+S)
    Exit (Esc)
“Menu de arquivo”
“Apaga área cliente e inicia um novo desenho”
“Abre arquivo de desenho”
“Salva em arquivo o desenho atual”
“Sai do editor”
View
    Tool bar (Alt+F1)
    Style bar (Alt+F2)
    Color bar (Alt+F3)
“Menu de visualização das barras de ferramentas”
“Exibe ou oculta barra de comandos”
“Exibe ou oculta barra de estilos e larguras das linhas”
“Exibe ou oculta barra de cores”
Tool
    Pick (F1)
    Erase (F2)
    Rotate (F3)
    Line (F4)
    Triangle (F5)
    Rectangle (F6)
    Circle (F7)
“Menu de ferramentas”
“Seleciona ferramenta de seleção, translação e alteração dos pontos de controle”
“Seleciona ferramenta para apagar primitivas”
"Seleciona ferramenta para rotacionar primitivas"
“Seleciona ferramenta para criar linhas”
"Seleciona ferramenta para criar triângulos”
"Seleciona ferramenta para criar retângulos”
"Seleciona ferramenta para criar círculos”
Width
    Very Thin
    Thin
    Medium
    Thick
    Very Thick
“Menu de formatação da largura das linhas”
“Seleciona largura muito fina (1 pixel)”
"Seleciona largura fina (8 pixels)”
“Seleciona largura média (16 pixels)”
“Seleciona largura grossa (24 pixels)”
“Seleciona largura muito grossa (32 pixels)”
Pen Style
    Solid
    Dash
    Dot
“Menu de formatação do estilo das linhas”
“Seleciona estilo sólido”
“Seleciona estilo tracejado”
“Seleciona estilo pontilhado”
Color
    (Retângulo preto)
    (Retângulo azul)
    (Retângulo verde)
    (Retângulo ciano)
    (Retângulo vermelho)
    (Retângulo magenta)
    (Retângulo amarelo)
    (Retângulo branco)
“Menu de formatação das cores das linhas”
“Seleciona cor preta”
“Seleciona cor azul”
“Seleciona cor verde”
“Seleciona cor ciana”
“Seleciona cor vermelha”
“Seleciona cor magenta”
“Seleciona cor amarela”
“Seleciona cor branca

2.2.2 - BARRA DE FERRAMENTAS

Por default, a barra de ferramentas de comandos é localizada na parte esquerda da janela. A barra de ferramentas de seleção de cores e a barra de ferramentas de seleção de largura e estilo das linhas ficam localizadas na parte inferior da janela.
 

Barra de seleção de comandos
    Ícone “Pick”
    Ícone “Erase”
    Ícone "Rotate"
    Ícone “Line”
    Ícone “Triangle”
    Ícone “Rectangle”
    Ícone “Circle”

“Seleciona ferramenta de seleção, translação, etc.”
“Seleciona ferramenta para apagar primitivas”
"Seleciona ferramenta para rotacionar primitivas"
“Seleciona ferramenta para criar linhas”
“Seleciona ferramenta para criar triângulos”
“Seleciona ferramenta para criar retângulos”
“Seleciona ferramenta para criar círculos”
Barra de seleção do estilo das linhas
    Ícone “Very thin”
    Ícone “Thin”
    Ícone “Medium”
    Ícone “Thick”
    Ícone “Very thick”

“Seleciona largura muito fina (1 pixel)”
“Seleciona largura fina (8 pixels)”
“Seleciona largura média (16 pixels)”
“Seleciona largura grossa (24 pixels)”
“Seleciona largura muito grossa (32 pixels)”
Barra de seleção do estilo das linhas
    Ícone “Solid”
    Ícone “Dash”
    Ícone “Dot”

“Seleciona estilo sólido”
“Seleciona estilo tracejado”
“Seleciona estilo pontilhado”

2.2.3 - BARRA DE STATUS

A barra de status fica localizada na parte inferior da janela, exibindo a descrição da funcionalidade de cada comando à medida que o usuário posiciona o cursor do mouse nos comandos do menu ou das barras de ferramentas.



Retornar à página principal