<chapter id="advanced-quanta">
<title
>Erweiterte Funktionen von &quanta;</title>
<para
>Diese Kapitel beschreibt die erweiterten Funktionen von &quanta;.</para>

<sect1 id="kommander">
<title
><application
>Kommander</application
> mit &quanta; benutzen</title>
<para
>Kommander von Marc Britton.</para>
</sect1>

&debugging-quanta;

<sect1 id="tag-files">
<title
>&quanta; Formatierungsdateien</title>
<para
>&quanta; benutzt Formatierungsdateien, um die verschiedenen Aktionen zu definieren, die für die Werkzeugleisten verfügbar sind. Diese Formatierungsdateien können ein einfaches Tag (im Folgenden als solches bezeichnet; Formatierungsanweisung in HTML-, SGML-, XML-Dokumenten; Anm. d. Übers.) ohne Attribute definieren oder sie können eine Dialogbox für ein Tag definieren, die alle verfügbaren Attribute enthält, sodass Sie einfach die leeren Felder ausfüllen können.</para>
<important
> <para
>Leerzeichen beeinflussen nichts, aber schauen Sie nach den Zeichen &amp; und &lt;. Diese sollten durch &amp;amp; und &amp;lt; in allen xml-basierten &quanta; Resourcendateien ersetzt werden. Es wird nicht zum Absturz führen, aber einige Teile Ihrer Arbeit werden verloren gehen, wenn Sie es vergessen.</para
> </important>
<sect2 id="tag-file-structure">
<title
>Formatierungsdateistruktur</title>
<sect3>
<title
></title>
<para
>Mögliche Einträge für das Typ-Attribute des Tags "attr": Um eine Liste der möglichen Typen zu bekommen, habe ich das folgende im Verzeichnis "tags" ausgeführt: grep -h type= *.tag | sed -e 's/^.*type=\"\([a-z]*\).*/\1/'| sort | uniq</para>
<para
>Das sind die Typen für Tagdialogeinträge: <simplelist
><member
>check</member
> <member
>color</member
> <member
>input</member
> <member
>list</member
> <member
>text</member
> <member
>url</member
> </simplelist
> </para>
<para
> Das sind die Argumenttypen in PHP-Funktionstags, fragen Sie Andras wenn Fragen auftauchen. Sie sind frei definiert und lauten so: <simplelist
> <member
>array</member
> <member
>bool</member
> <member
>boolean</member
> <member
>char</member
> <member
>constant</member
> <member
>flags</member
> <member
>float</member
> <member
>function</member
> <member
>int</member
> <member
>long</member
> <member
>mixed</member
> <member
>number</member
> <member
>object</member
> <member
>resource</member
> <member
>resoure</member
> <member
>string</member
> </simplelist
> </para>
<para
>Die Tag-Definition hat folgende optionale Attribute: <variablelist
> <varlistentry
> <term
>hasScript</term
> <listitem
><para
>"1" wenn übliche Events/Skripte mit diesem Tag verbunden werden können (onClick usw.)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>hasCore</term
> <listitem
><para
>"1" wenn normale core-Attribute vorhanden sind (id, class usw.)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>hasI18n</term
> <listitem
><para
>"1" wenn übliche i18n-Attribute vorhanden sind (lang, dir)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>single </term
> <listitem
><para
>"1" wenn es ein einfaches Tag ist (z.B. &lt;hr
>)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>optional </term
> <listitem
><para
>"1" wenn es ein optionales Tag ist (z.B. &lt;colgroup
>)</para
></listitem
> </varlistentry
> <varlistentry
> <term
>returnType</term
> <listitem
><para
>für Skriptsprachen, wenn die Funktion einen Wert zurückgibt (z.B. int)</para
></listitem
> </varlistentry
> </variablelist
> </para>

<para
> Die &lt;attr
>-Definition kann folgende Attribute haben: <variablelist
> <varlistentry
> <term
>defaultValue</term
><listitem
><para
>der Standardwert des Tags ???</para
></listitem
> </varlistentry
> <varlistentry
> <term
>status</term
> <listitem
><para
>kann <quote
>optional</quote
>, <quote
>required</quote
> (benötigt) oder <quote
>implied</quote
> (implizit) sein</para
></listitem
> </varlistentry
> </variablelist
> </para>
</sect3>
<sect3>
<sect3info>
<author
> <firstname
></firstname
> <surname
></surname
> </author>
</sect3info>
<title
></title>
<para
> Für Skriptsprachenfunktionen definieren Sie Formatierungsdateien so: <informalexample
> <literallayout>
&lt;!DOCTYPE tags>
&lt;tags>

&lt;tag name=<quote
>[Funktionsname]</quote
> type=<quote
>function</quote
> returnType=<quote
>[Rückgabewert]</quote
>>
  &lt;attr name=<quote
>[Argument1]></quote
> type=<quote
>[Argument1-Typ]</quote
>
>&lt;/attr>
  &lt;attr name=<quote
>[Argument2]</quote
> type=<quote
>[Argument2-Typ]</quote
> status=<quote
>optional</quote
>
>&lt;/attr>
    ...
&lt;/tag>
&lt;tag ...
...
&lt;/tag>
 ...
&lt;/tags>
</literallayout
> </informalexample
> </para>
<para
> Angaben in [] müssen ersetzt werden. Argument1 oben ist erforderlich und Argument2 ist optional. </para>
<para
> Eine Formatierungsdatei, die eine Dialogbox zum Bearbeiten eines Tags enthalten soll, sollte so aussehen: <informalexample
> <programlisting>
<markup>
&lt;!DOCTYPE tags>
&lt;tags>
  &lt;tag name="[Name] [hasCore="[01]" hasI18n="[01]" hasScript="[01]"]>
    &lt;attr name="[Attribute1]" type="[check|color|input|list|text|url]">
      &lt;text
>&lt;/text>
      &lt;textlocation col="0" row="0" />
      &lt;tooltip
>&lt;/tooltip>
      &lt;location col="1" row="0" colspan="3"/>
    &lt;/attr>
  ...
  &lt;/tag>
  ...
&lt;/tags>
</markup>
</programlisting
> </informalexample
> </para>

<para
> &lt;text
>&lt;/text
> definiert einen beschreibenden Text für das Objekt. </para>
<para
> &lt;textlocation ... /> definiert ein Zeilen- und Spaltenlayout für das Tag &lt;text
>. </para>
<para
> &lt;tooltip
>&lt;/tooltip
> ist eine Textkurzbeschreibung. </para>
<para
> &lt;location  /> definiert den Ort des Objekts für dieses Attribut. </para>
<para
> Alle Attribute müssen in der Formatierungsdatei aufgezählt sein. Wenn Sie sie nicht im Tag-Dialog auftauchen lassen wollen, lassen Sie einfach das Tag &lt;location
> weg. Also &lt;attr ...
>&lt;/attr
> </para>
</sect3>
</sect2>
</sect1>

</chapter>

