<?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 % German "INCLUDE"
> 
]>
<book lang="&language;">

<bookinfo>
<title
>Das Handbuch zu &rocs;</title>
<authorgroup>
<author
><personname
> <firstname
>Tomaz</firstname
> <surname
>Canabrava</surname
> </personname
> <email
>tomaz.canabrava@gmail.com</email
> </author>
<othercredit role="translator"
><firstname
>Burkhard</firstname
><surname
>Lück</surname
><affiliation
><address
><email
>lueck@hube-lueck.de</email
></address
></affiliation
><contrib
>Übersetzung</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
>&rocs; ist ein Graphentheorie-Werkzeug für &kde;. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeedu</keyword>
<keyword
>Mathematik</keyword>
<keyword
>Mathe</keyword>
<keyword
>Graphen</keyword>
<keyword
>Knoten</keyword>
<keyword
>Kante</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Einführung</title>
<para
>&rocs; wurde als Entwicklungsumgebung für die Graphentheorie entwickelt, damit Professoren die Ergebnisse von Graphen-Algorithmen Ihren Studenten zeigen können und damit die Studenten die Algorithmen verstehen lernen. </para>

<para
>&rocs; kann durch Skripte in Qt Script erweitert werden. Mit diesen Skripten kann ein gezeichneter Graph bearbeitet werden. Jede Änderung des Graphen durch das Skript wird in der Darstellung angezeigt.</para>
</chapter>

<chapter id="using-rocs">
<title
>Arbeiten mit &rocs;</title>
<para
>Die Benutzerschnittstelle besteht aus zwei Teilen: </para
> 

<itemizedlist>
<listitem
><para
>Oben rechts zeichnen Sie Ihre Graphen, unten rechts geben Sie die Algorithmen ein. </para
></listitem>
<listitem
><para
>Auf der linken Seite werden alle geöffneten Graphen angezeigt. Es können mehrere Graphen in einer Datei enthalten sein. </para
></listitem>
</itemizedlist>


<sect1 id="rocs-features">
<title
>Globale Einstellungen von &rocs;</title>
<para
>Auf der linken Seite des Hauptfensters werden alle Einstellungen der geöffneten Graphen angezeigt. Diese Einstellungen gelten global für jeden Graphen. Die einzelnen Knoten und Kanten können in den Dialogen <guilabel
>Knoteneigenschaften</guilabel
> und <guilabel
>Kanteneigenschaften</guilabel
> geändert werden.</para>
<itemizedlist>
<listitem
><para>
<guilabel
>Graphenname</guilabel>
</para
></listitem>
<listitem
><para
><guilabel
>Knotenfarbe</guilabel
> der neu erstellten Knoten. Um die Farbe für alle aktuellen Knoten zu ändern, wahlen Sie den Knopf <guibutton
>Alle</guibutton
>. </para
></listitem>
<listitem
><para>
<guilabel
>Kantenfarbe</guilabel>
</para
></listitem>
</itemizedlist>
<para
>Die letzte Teil der Optionen besteht aus umschaltbaren Knöpfen:</para>
<itemizedlist>
<listitem
><para
><guilabel
>Namen anzeigen in:</guilabel
> <guilabel
>Knoten</guilabel
> oder <guilabel
>Kanten</guilabel
>. </para
></listitem>
<listitem
><para
><guilabel
>Werte anzeigen in:</guilabel
> <guilabel
>Knoten</guilabel
> oder <guilabel
>Kanten</guilabel
>. </para
></listitem>
<!--listitem
><para>
<guilabel
>Graph is oriented</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Graph is Automate</guilabel>
</para
></listitem-->
</itemizedlist>
</sect1>

<sect1 id="rocs-toolbars">
<title
>&rocs;-Werkzeugleisten</title>
<para
>Es gibt oben zwei Werkzeugleisten. In der Haupt-Werkzeugleiste finden Sie:</para>
<itemizedlist>
<listitem
><para
><guilabel
>Knoten verschieben</guilabel
>: Bewegt einen Knoten im Zeichenbereich herum.</para
></listitem>
<listitem
><para
><guilabel
>Knoten verschieben</guilabel
>: Erstellt einen neuen Knoten an der Klickposition im Zeichenbereich.</para
></listitem>
<listitem
><para
><guilabel
>Kante hinzufügen</guilabel
>: Erstellt eine neue Kante zwischen zwei Knoten.</para
></listitem>
<listitem
><para
><guilabel
>Auswählen</guilabel
>: Elemente durch anklicken auswählen.</para
></listitem>
<listitem
><para
><guilabel
>Löschen</guilabel
>: Elemente durch Anklicken löschen.</para
></listitem>
<listitem
><para
>Verwenden Sie die Aktionen in der Layout-Werkzeugleiste, um die ausgewählten Knoten auszurichten.</para
></listitem>
</itemizedlist>

<para
>Klicken mit der &RMBn; auf einen Knoten oder eine Kante öffnet den Eigenschaftendialog für diese Element.</para>
<para
>Die Layout-Werkzeugleiste enthält mehrere Aktionen um Elemente im Zeichenbereich auszurichten.</para>

<para
>Um Knoten auszurichten, aktivieren Sie das Werkzeug <guiicon
>Auswählen</guiicon
>, Klicken und Ziehen mit gerückter &LMBr; ein Rechteck um die Objekte und wählen dann die gewünschte Ausrichtung. </para>
</sect1>
</chapter>

<chapter id="scripting-rocs">
<title
>Skripte für &rocs;</title>
<para
>Wenn der Graph auf dem Bildschirm angezeigt wird, können Sie mit dem Schreiben des Skripts beginnen. Die Sprache verwendet eine ähnliche Syntax wie JavaScript. Im Folgenden werden die Objekte Graph, Knoten und Kante gezeigt.</para>

<sect1 id="script-graph">
<title
>Graph</title>
<programlisting
>array list_nodes();
     array list_edges();
     node add_node(name);
     edge add_edge(from, to);
     node node_byname(QString&amp; name);
     node begin_node();
     array end_nodes();
</programlisting
> 
<para
>Graphenvariablen, die geändert werden können:</para>
<programlisting
>bool directed
     bool automate
     string name
     string nodeDefaultColor // in HEXA
     string edgeDefaultColor  // in HEXA 
</programlisting>
</sect1>

<sect1 id="script-nodes">
<title
>Knoten</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
>Knotenvariablen:</para>
<programlisting
>double x
    double y
    double width
    string value
    string name
    string color  // in HEXA
    bool begin
    bool end
</programlisting>
</sect1>

<sect1 id="script-edges">
<title
>Kanten</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
>Ein Beispiel</title>
<para
>Hier ist ein einfaches Beispielskript, das die Farben der ersten 4 Knoten im ersten Graphen festlegt:</para>
<programlisting
>/* Ein einfaches Beispiel, das die Farben der ersten 4 Knoten im ersten Graphen festlegt: */
 
var colours = new Array("red", "green", "blue", "yellow");

/* graphs ist ein Feld von Graphen, Zugriff auf einen Graph ist über den Index im
Feld oder über den Namen möglich. Wenn der erste Graph Untitled0 genannt wurde,
können Sie auf folgende Art auf den Graphen zugreifen  */
var list1= graphs[0].list_nodes();   //  Erste Form.
var list2=Untitled0.list_nodes();     // Zweite Form
 
 for ( var i = 0; i &lt; colours.length; i++){
        if (i 
> list2.length) break;
        list2[i].color = colours[i]
 }
</programlisting>
</sect1>

</chapter>

<chapter id="commands">
<title
>Befehlsreferenz</title>

<sect1 id="rocs-mainwindow">
<title
>Menüs und Kurzbefehle</title>

<sect2>
<title
>Das Menü <guimenu
>Datei</guimenu
></title>
<variablelist>
<varlistentry>
<term
><menuchoice
><shortcut
> <keycombo action="simul"
>&Ctrl; <keycap
>Q</keycap
></keycombo
> </shortcut
> <guimenu
>Datei</guimenu
> <guimenuitem
>Beenden</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Beendet</action
> &rocs;</para
></listitem>
</varlistentry>
</variablelist>

</sect2>


<sect2>
<title
>Das Menü <guimenu
>Einstellungen</guimenu
></title>

<variablelist>
<varlistentry>
<term
><menuchoice
><guimenu
>Einstellungen</guimenu
> <guisubmenu
>Angezeigte Werkzeugleisten</guisubmenu
> </menuchoice
></term>
<listitem
><para
><action
>Blendet</action
> die <guimenuitem
>Haupt-Werkzeugleiste</guimenuitem
> und die <guimenuitem
>Layout-Werkzeugleiste</guimenuitem
> ein oder aus.</para
></listitem>
</varlistentry>


<varlistentry>
<term
><menuchoice
><guimenu
>Einstellungen</guimenu
> <guimenuitem
>Statusleiste anzeigen</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Zeigt</action
> die Statusleiste an bzw. blendet sie aus.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Einstellungen</guimenu
> <guimenuitem
>Kurzbefehle festlegen ...</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Öffnet</action
> den &kde;-Standarddialog zur Konfiguration von Tastaturkürzeln. </para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><guimenu
>Einstellungen</guimenu
> <guimenuitem
>Werkzeugleisten einrichten ...</guimenuitem
> </menuchoice
></term>
<listitem
><para
><action
>Richtet</action
> die Einträge ein, die Sie in der Werkzeugleiste haben möchten. </para
></listitem>
</varlistentry>

</variablelist>

</sect2>

<sect2>
<title
>Das Menü <guimenu
>Hilfe</guimenu
></title>
&help.menu.documentation; </sect2>
</sect1>
</chapter>


<chapter id="credits">

<title
>Danksagungen und Lizenz</title>

<para
>&rocs; </para>
<para
>Programm Copyright 2009 Tomaz Canabrava tcanabrava at kde dot org </para>

<para
>Dokumentation Copyright 2009 &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; und Tomaz Canabrava tcanabrava at kde dot org </para>

<para
>Burkhard Lück<email
>lueck@hube-lueck.de</email
></para
> 
&underFDL; &underGPL; </chapter>

<appendix id="installation">
<title
>Installation</title>

<sect1 id="getting-rocs">
<title
>Wie Sie &rocs; erhalten</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title
>Kompilierung und Installation</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:
-->
