<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [

  <!ENTITY kappname "&rocs;">
  <!ENTITY package "kdeedu">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Portuguese "INCLUDE"
> 
]>
<book lang="&language;">

<bookinfo>
<title
>O Manual do &rocs;</title>
<authorgroup>
<author
><personname
> <firstname
>Tomaz</firstname
> <surname
>Canabrava</surname
> </personname
> <email
>tomaz.canabrava@gmail.com</email
> </author>
<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>zepires@gmail.com</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2009</year>
<holder
>Tomaz Canabrava</holder>
</copyright>
<legalnotice
>&FDLNotice;</legalnotice>

<date
>2009-11-05</date>
<releaseinfo
>1.0</releaseinfo>

<abstract>
<para
>O &rocs; é uma ferramenta de visualização da teoria dos grafos para o KDE. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeedu</keyword>
<keyword
>matemática</keyword>
<keyword
>matemática</keyword>
<keyword
>grafos</keyword>
<keyword
>nó</keyword>
<keyword
>aresta</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Introdução</title>
<para
>O &rocs; pretende ser um IDE da Teoria dos Grafos para ajudar os professores a mostrar os resultados de um algoritmo de grafos e também para ajudar os alunos a criar os algoritmos.</para>

<para
>O &rocs; tem um módulo de programação, feito em Qt Script, que interage com o grafo desenhado, sendo que todas as alterações no grafo com o programa são reflectidas no grafo desenhado.</para>
</chapter>

<chapter id="using-rocs">
<title
>Usar o &rocs;</title>
<para
>A interface do utilizador está dividida em duas partes: </para
> 
<itemizedlist>
<listitem
><para
>a parte superior-direita é onde desenha os seus grafos, enquanto a inferior-direita é onde cria os seus algoritmos, </para
></listitem>
<listitem
><para
>a barra lateral esquerda é onde ficam todos os seus grafos abertos, sendo que poderá abrir vários grafos por cada ficheiro. </para
></listitem>
</itemizedlist>


<sect1 id="rocs-features">
<title
>Configuração global do &rocs;</title>
<para
>Na barra lateral, poderá encontrar as opções para cada grafo aberto, sendo que estas opções são globais por cada grafo, podendo ser alteradas para cada nó e aresta nas Propriedades dos Nós e das janelas de Propriedades das Arestas.</para>
<itemizedlist>
<listitem
><para>
<guilabel
>Nome do Grafo</guilabel>
</para
></listitem>
<listitem
><para
><guilabel
>Node Color</guilabel
> for new created nodes, you can change the node color for all current nodes by clicking the All button </para
></listitem>
<listitem
><para>
<guilabel
>Cor das Arestas</guilabel>
</para
></listitem>
</itemizedlist>
<para
>A última fila de opções consiste em botões de comutação:</para>
<itemizedlist>
<listitem
><para>
<guilabel
>Oriented Graph</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Automated Graph</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Show nodes names</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Show edges names</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Show nodes values</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Show edges values</guilabel>
</para
></listitem>
</itemizedlist>
</sect1>

<sect1 id="rocs-toolbars">
<title
>Barras de Ferramentas do &rocs;</title>
<para
>Existem duas barras de ferramentas no topo. A principal tem as seguintes ferramentas:</para>
<itemizedlist>
<listitem
><para
><guilabel
>Mover o Nó</guilabel
>: move um nó pela área de desenho.</para
></listitem>
<listitem
><para
><guilabel
>Adicionar um Nó</guilabel
>: cria um novo nó na posição da área de desenho onde carregou.</para
></listitem>
<listitem
><para
><guilabel
>Adicionar uma Aresta</guilabel
>: cria uma nova aresta entre os dois nós.</para
></listitem>
<listitem
><para
><guilabel
>Seleccionar</guilabel
>: selecciona os itens, carregando para tal nos mesmos.</para
></listitem>
<listitem
><para
><guilabel
>Apagar</guilabel
>: apaga os itens, carregando para tal neles.</para
></listitem>
</itemizedlist>

<para
>Se carregar com o botão direito do rato num nó ou aresta, irá invocar a janela de propriedades para esse item.</para>
<para
>A barra de disposição consiste em vários ícones de alinhamento.</para>

<para
>Para alinhar os nós, escolha a ferramenta <guiicon
>Seleccionar</guiicon
>, carregue e arraste um rectângulo e escolha o alinhamento desejado. </para>
</sect1>
</chapter>

<chapter id="scripting-rocs">
<title
>Programar no &rocs;</title>
<para
>Depois de o grafo estar no ecrã, poderá começar a criar o programa para ele. A linguagem usa uma sintaxe de JavaScript e consiste nos objectos Graph, Node e Edge.</para>

<sect1 id="script-graph">
<title
>Grafo</title>
<programlisting
>array list_nodes();
     array list_edges();
     node add_node(nome);
     edge add_edge(de, para);
     node node_byname(QString&amp; nome);
     node begin_node();
     array end_nodes();
</programlisting
> 
<para
>As variáveis do grafo podem ser alteradas:</para>
<programlisting
>bool directed
     bool automate
     string name
     string nodeDefaultColor // em HEXADECIMAL
     string edgeDefaultColor  // em HEXADECIMAL 
</programlisting>
</sect1>

<sect1 id="script-nodes">
<title
>Nós</title>
<programlisting
>array adj_nodes();
     array adj_edges();
     array  input_edges();
     array output_edges();
     array loop_edges();
     array connected_edges(Node *n);
     void self_remove();
</programlisting
> 
<para
>Variáveis do Nó:</para>
<programlisting
>double x
    double y
    double width
    string value
    string name
    string color  // em HEXADECIMAL
    bool begin
    bool end
</programlisting>
</sect1>

<sect1 id="script-edges">
<title
>Arestas</title>
<programlisting
>string color ( em hexa )
    string value
    string name
    double width
    string style ( dot, dash, dash dot, solid )

    node start();
    node  end();

    void self_remove();
</programlisting
> 
</sect1>

<sect1 id="script-example">
<title
>Exemplo</title>
<para
>Aqui está um programa simples de exemplo que altera a cor dos 4 primeiros nós do primeiro grafo:</para>
<programlisting
>/* Um exemplo simples que altera a cor dos 4 primeiros nós do primeiro grafo: */
 
var cores = new Array("red", "green", "blue", "yellow");

/* 'grafos' é uma lista de grafos, onde poderá aceder a um grafo pelo seu índice
   na lista ou pelo seu nome, pelo que, se o nome do primeiro grafo for 'SemTitulo0',
   ambas as instruções seguintes são correctas */
var lista1= graphs[0].list_nodes(); //  1a forma
var lista2=SemTitulo0.list_nodes();              // 2a forma
 
 for ( var i = 0; i &le; cores.length; i++){
        if (i 
> lista2.length) break;
        lista2[i].color = cores[i]
 }
</programlisting>
</sect1>

</chapter>

<chapter id="commands">
<title
>Referência de Comandos</title>

<sect1 id="rocs-mainwindow">
<title
>Menus e Teclas de Atalho</title>

<sect2>
<title
>O Menu <guimenu
>Ficheiro</guimenu
></title>
<variablelist>
<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl;<keycap
>Q</keycap
></keycombo
> </shortcut
> <guimenu
>Ficheiro</guimenu
> <guimenuitem
>Sair</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Sai</action
> do &rocs;</para
></listitem>
</varlistentry>
</variablelist>

</sect2>


<sect2>
<title
>O Menu <guimenu
>Configuração</guimenu
></title>

<variablelist>
<varlistentry>
<term
><menuchoice
><guimenu
>Configuração</guimenu
> <guisubmenu
>Barras de Ferramentas Visíveis</guisubmenu
> </menuchoice
></term>
<listitem
><para
><action
>Activa ou desactiva</action
> as barras de ferramentas <guimenuitem
>Principal</guimenuitem
> e de <guimenuitem
>Disposição</guimenuitem
>.</para
></listitem>
</varlistentry>


<varlistentry>
<term
><menuchoice
><guimenu
>Configuração</guimenu
> <guimenuitem
>Mostrar a Barra de Estado</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Activa ou desactiva</action
> a barra de estado.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Configuração</guimenu
> <guimenuitem
>Configurar os Atalhos...</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Abre</action
> a janela de configuração normal do &kde; que lhe permite escolher teclas de atalho diferentes para as acções diferentes. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Configuração</guimenu
> <guimenuitem
>Configurar as Barras de Ferramentas...</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Configura</action
> os itens que você deseja colocar na barra de ferramentas. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2>
<title
>O Menu <guimenu
>Ajuda</guimenu
></title>
&help.menu.documentation; </sect2>
</sect1>
</chapter>


<chapter id="credits">

<title
>Créditos e Licença</title>

<para
>&rocs; </para>
<para
>Programa com 'copyright' 2009 de Tomaz Canabrava tcanabrava at kde dot org </para>

<para
>Documentação com 'copyright' 2009 de &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; e Tomaz Canabrava tcanabrava at kde dot org </para>

<para
>Tradução de José Nuno Pires <email
>zepires@gmail.com</email
></para
> 
&underFDL; &underGPL; </chapter>

<appendix id="installation">
<title
>Instalação</title>

<sect1 id="getting-rocs">
<title
>Como obter o &rocs;</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title
>Compilação e instalação</title>
&install.compile.documentation; </sect1>
</appendix>

&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes: nil
sgml-general-insert-case: lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->
