Regen'd Swedish documentation

h/t Daniel N.
This commit is contained in:
Bill Kendrick 2025-09-28 10:07:25 +01:00
parent fb0460894c
commit 509dfff633
12 changed files with 488 additions and 473 deletions

View file

@ -2,7 +2,7 @@
<html>
<head>
<title>
Tux Paint Magic Tool Plugin API Documentation </title>
Tux Paint Magic Tool Plugin API-dokumentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
@ -94,7 +94,7 @@
version 0.9.36 </h1>
<h2>
Magic Tool Plugin API Documentation </h2>
Dokumentation för tillägget Magi-verktygets API </h2>
<p>
Copyright © 2007-2025 av olika bidragsgivare; se <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
@ -120,25 +120,25 @@
<tr>
<td>
<ul>
<li><a href="#prereqs">Förutsättningar</a></li> <li><a href="#interfaces">Interfaces</a> <ul>
<li><a href="#magic_plugin_funcs">plugin-funktioner för "Magic"-verktyget</a> <ul>
<li><a href="#common_args">Vanliga argument till plugin-funktioner</a></li> <li><a href="#toolfuncs">Nödvändiga plugin-funktioner</a> <ul>
<li><a href="#housekeeping">Plugin "hushållning" funktioner</a></li> <li><a href="#eventfuncs">Plugin-händelsefunktioner</a></li> </ul>
<li><a href="#prereqs">Förutsättningar</a></li> <li><a href="#interfaces">Gränssnitt</a> <ul>
<li><a href="#magic_plugin_funcs">tilläggsfunktioner för "Magi"-verktyget</a> <ul>
<li><a href="#common_args">Vanliga argument till tilläggsfunktioner</a></li> <li><a href="#toolfuncs">Nödvändiga tilläggsfunktioner</a> <ul>
<li><a href="#housekeeping">Tilläggsfunktioner för "hushållning"</a></li> <li><a href="#eventfuncs">Händelsefunktioner för tillägg</a></li> </ul>
</li>
</ul>
</li>
<li><a href="#tpfuncs">Tux Paint Functions and Data</a> <ul>
<li><a href="#pixel_manip">Pixelmanipulationer</a></li> <li><a href="#helper_funcs">Hjälpfunktioner</a></li> <li><a href="#informational">Information</a></li> <li><a href="#sound">Sound Functions</a></li> <li><a href="#syscalls">Tux Paint System Calls</a></li> <li><a href="#color_convs">Färgkonverteringar</a></li> </ul>
<li><a href="#tpfuncs">Tux Paint Funktioner och data</a> <ul>
<li><a href="#pixel_manip">Pixelmanipulationer</a></li> <li><a href="#helper_funcs">Hjälpfunktioner</a></li> <li><a href="#informational">Information</a></li> <li><a href="#sound">Ljudfunktioner</a></li> <li><a href="#syscalls">Systemanrop för Tux Paint</a></li> <li><a href="#color_convs">Färgkonverteringar</a></li> </ul>
</li>
<li><a href="#macros">Hjälpmakron i "tp_magic_api.h"</a></li> <li><a href="#consts">Constant Definitions in "tp_magic_api.h"</a></li> </ul>
<li><a href="#macros">Hjälpmakron i "tp_magic_api.h"</a></li> <li><a href="#consts">Konstantdefinitioner i "tp_magic_api.h"</a></li> </ul>
</li>
<li><a href="#compiling">Compiling</a> <ul>
<li><a href="#compiling-linux">Linux and other Unix-like Platforms</a></li> <li><a href="#compiling-windows">Fönster</a></li> <li><a href="#compiling-macos">macOS</a></li> </ul>
<li><a href="#compiling">Kompilering</a> <ul>
<li><a href="#compiling-linux">Linux och andra Unix-liknande plattformar</a></li> <li><a href="#compiling-windows">Fönster</a></li> <li><a href="#compiling-macos">macOS</a></li> </ul>
</li>
<li><a href="#installing">Installing</a> <ul>
<li><a href="#installing-linux">Linux and other Unix-like Platforms</a></li> <li><a href="#installing-windows">Fönster</a></li> <li><a href="#installing-macos">macOS</a></li> </ul>
<li><a href="#installing">Installering</a> <ul>
<li><a href="#installing-linux">Linux och andra Unix-liknande plattformar</a></li> <li><a href="#installing-windows">Fönster</a></li> <li><a href="#installing-macos">macOS</a></li> </ul>
</li>
<li><a href="#multiple">Skapa plugins med flera effekter</a></li> <li><a href="#examples">Example Code</a></li> <li><a href="#help">Få hjälp</a></li> <li><a href="#glossary">Ordlista</a></li> </ul>
<li><a href="#multiple">Skapa tillägg med flera effekter</a></li> <li><a href="#examples">Exempelkod</a></li> <li><a href="#help">Få hjälp</a></li> <li><a href="#glossary">Ordlista</a></li> </ul>
</td>
</tr>
</table>
@ -153,10 +153,10 @@
</header>
<p>
Rita med Tux's "Magic"-verktyg kommer som en uppsättning "plugins" som laddas när Rita med Tux startar. </p>
Rita med Tux "Magi"-verktyg kommer som en uppsättning "tillägg" som laddas när Rita med Tux startar. </p>
<p>
Denna uppdelning möjliggör en snabbare utveckling av "magiska" verktyg och gör det möjligt för programmerare att skapa och testa nya verktyg utan att behöva integrera dem i Rita med Tuxs källkod. (Användare av mer professionella grafikverktyg, t.ex. GIMP, bör känna till detta plugin-koncept) </div>
Denna uppdelning möjliggör en snabbare utveckling av "magiska" verktyg och gör det möjligt för programmerare att skapa och testa nya verktyg utan att behöva integrera dem i Rita med Tuxs källkod. (Användare av mer professionella grafikverktyg, t.ex. GIMP, bör känna till detta tilläggskoncept) </div>
</section><!-- H1: Overview -->
@ -176,20 +176,20 @@
<section class="outer"><!-- H1: Interfaces -->
<header>
<h1 id="interfaces">
Interfaces </h1>
Gränssnitt </h1>
</header>
<p>
De som skapar plugins för "magiska" verktyg för Rita med Tux måste tillhandahålla vissa gränssnitt (C-funktioner) som Rita med Tux kan anropa. </p>
De som skapar tillägg för "magiska" verktyg för Rita med Tux måste tillhandahålla vissa gränssnitt (C-funktioner) som Rita med Tux kan anropa. </p>
<p>
Rita med Tux använder SDL:s rutiner "SDL_LoadObject()" och "SDL_LoadFunction()" för att ladda plugins (filer med delade objekt, t.ex. "<code>.so</code>"-filer i Linux eller "<code>.dll</code>"-filer i Windows) och hitta funktionerna i dem. </p>
Rita med Tux använder SDL:s rutiner "SDL_LoadObject()" och "SDL_LoadFunction()" för att ladda tillägg (filer med delade objekt, t.ex. "<code>.so</code>"-filer i Linux eller "<code>.dll</code>"-filer i Windows) och hitta funktionerna i dem. </p>
<p>
Rita med Tux tillhandahåller i sin tur ett antal hjälpfunktioner som plugin-programmet kan (eller ibland måste) använda. Detta exponeras som en C-struktur (eller<code>"struct</code>") som innehåller pekare till funktioner och andra data i Rita med Tux. En pekare till denna struktur skickas vidare till plugin-funktionerna som ett argument när Rita med Tux anropar dem. </p>
Rita med Tux tillhandahåller i sin tur ett antal hjälpfunktioner som tilläggsprogrammet kan (eller ibland måste) använda. Detta exponeras som en C-struktur (eller<code>"struct</code>") som innehåller pekare till funktioner och andra data i Rita med Tux. En pekare till denna struktur skickas vidare till plugin-funktionerna som ett argument när Rita med Tux anropar dem. </p>
<p>
Plugins bör <code>#inkludera</code> C-huvudfilen<code>"tp_magic_api.h</code>", som exponerar plugin-API:et för verktyget "Magic". När du kör C-kompilatorn för att bygga ett plugin bör du också använda kommandoradsverktyget<code>"tp-magic-config</code>" för att få lämpliga kompilatorflaggor (till exempel var kompilatorn kan hitta Rita med Tux-pluginhuvudfilen, liksom SDLs huvudfiler) för att bygga ett plugin. (Se<a href="#compiling">"Kompilering</a>" nedan.) </p>
Tillägg bör <code>#inkludera</code> C-huvudfilen<code>"tp_magic_api.h</code>", som exponerar plugin-API:et för verktyget "Magic". När du kör C-kompilatorn för att bygga ett plugin bör du också använda kommandoradsverktyget<code>"tp-magic-config</code>" för att få lämpliga kompilatorflaggor (till exempel var kompilatorn kan hitta Rita med Tux-pluginhuvudfilen, liksom SDLs huvudfiler) för att bygga ett plugin. (Se<a href="#compiling">"Kompilering</a>" nedan.) </p>
<p>
C-huvudfilen och kommandoradsverktyget som nämns ovan ingår i Rita med Tux - eller i vissa fall som en del av ett "Rita med Tux 'Magic' Tool Plugin Development package". </p>
@ -197,20 +197,20 @@
<section class="indent"><!-- H2: 'Magic' tool plugin functions -->
<header>
<h2 id="magic_plugin_funcs">
plugin-funktioner för "Magic"-verktyget </h2>
tilläggsfunktioner för "Magi"-verktyget </h2>
</header>
<p>
plugins för "Magic"-verktyg <i>måste</i> innehålla de funktioner som anges nedan. <b>Observera:</b> För att undvika kollisioner i namnrymden måste varje funktionsnamn börja med det delade objektets filnamn (t.ex. skulle "blur.so" eller "blur.dll" ha funktioner vars namn börjar med<code>"blur_</code>"). <i>Detta inkluderar privata funktioner</i> (sådana som inte används direkt av Rita med Tux), såvida du inte deklarerar dem som<code>"statiska</code>". </p>
Tillägg för "Magi"-verktyg <i>måste</i> innehålla de funktioner som anges nedan. <b>Observera:</b> För att undvika kollisioner i namnrymden måste varje funktionsnamn börja med det delade objektets filnamn (t.ex. skulle "blur.so" eller "blur.dll" ha funktioner vars namn börjar med<code>"blur_</code>"). <i>Detta inkluderar privata funktioner</i> (sådana som inte används direkt av Rita med Tux), såvida du inte deklarerar dem som<code>"statiska</code>". </p>
<section class="indent"><!-- H3: Common arguments to plugin functions -->
<header>
<h3 id="common_args">
Vanliga argument till plugin-funktioner </h3>
Vanliga argument till tilläggsfunktioner </h3>
</header>
<p>
Här följer en beskrivning av de argument som många av funktionerna i ditt plugin måste acceptera. </p>
Här följer en beskrivning av de argument som många av funktionerna i ditt tillägg måste acceptera. </p>
<dl>
<dt><code><b>magic_api * api</b></code></dt>
@ -218,7 +218,7 @@
<p>
Pekare till en C-struktur som innehåller pekare till Rita med Tux-funktioner och andra data som insticksprogrammet kan (och ibland bör) använda. Innehållet i denna struktur <a href="#tpfuncs">beskrivs nedan.</a>. </p>
<p>
Observera: Strukturen <code>magic_api</code> definieras i C-headerfilen<code>"tp_magic_api.h</code>", som du bör inkludera högst upp i ditt plugins C-källfil: <blockquote><code>
Observera: Strukturen <code>magic_api</code> definieras i C-headerfilen<code>"tp_magic_api.h</code>", som du bör inkludera högst upp i ditt tilläggs C-källfil: <blockquote><code>
#include "tp_magic_api.h"
</code></blockquote>
</p>
@ -257,19 +257,19 @@
<section class="indent"><!-- H3: Required Plugin Functions -->
<header>
<h3 id="toolfuncs">
Nödvändiga plugin-funktioner </h3>
Nödvändiga tilläggsfunktioner </h3>
</header>
<p>
Ditt insticksprogram måste minst innehålla alla följande funktioner. </p>
<p>
<b>Observera:</b> Kom ihåg att plugin-programmets funktionsnamn måste föregås av plugin-programmets filnamn. Det vill säga, om ditt plugin heter<code>"zoom.so</code>" (på Linux) eller "<code>zoom.dll</code>" (på Windows), måste namnen på dina funktioner börja med "<code><b>zoom_</b></code>" (t.ex. "<code>zoom_get_name(...)</code>"). </p>
<b>Observera:</b> Kom ihåg att tilläggsprogrammets funktionsnamn måste föregås av plugin-programmets filnamn. Det vill säga, om ditt plugin heter<code>"zoom.so</code>" (på Linux) eller "<code>zoom.dll</code>" (på Windows), måste namnen på dina funktioner börja med "<code><b>zoom_</b></code>" (t.ex. "<code>zoom_get_name(...)</code>"). </p>
<section class="indent"><!-- H4: Plugin "housekeeping" functions -->
<header>
<h4 id="housekeeping">
Plugin "hushållning" funktioner </h4>
Tilläggsfunktioner för "hushållning" </h4>
</header>
<dl>
@ -284,9 +284,9 @@
<dt><code><b>int init(magic_api * api, Uint8 disabled_features, Uint8 complexity_level)</b></code></dt>
<dd>
<p>
Plugin-programmet bör göra alla initialiseringar här. Returnera '1' om initieringen lyckades, eller '0' om den inte gjorde det (och Rita med Tux kommer inte att presentera några 'Magic'-verktyg från insticksprogrammet). </p>
Tilläggsprogrammet bör göra alla initialiseringar här. Returnera '1' om initieringen lyckades, eller '0' om den inte gjorde det (och Rita med Tux kommer inte att presentera några 'Magic'-verktyg från insticksprogrammet). </p>
<p>
<b>Obs:</b> Anropas en gång av Rita med Tux, vid uppstart. Det anropas efter<code>"api_version()</code>", om Rita med Tux anser att ditt plugin är kompatibelt. </p>
<b>Obs:</b> Anropas en gång av Rita med Tux, vid uppstart. Det anropas efter<code>"api_version()</code>", om Rita med Tux anser att ditt tillägg är kompatibelt. </p>
<p>
Värdet <code>disabled_features</code> innehåller bits som ställts in för alla Rita med Tux-funktioner som är relevanta för Magic-verktyg som har inaktiverats i den här sessionen. Test med hjälp av C:s bitvisa operator "och",<code>"&amp;".</code> Funktionerna är definierade i <code>tp_magic_api.h:</code>: <ul>
<li>
@ -294,7 +294,7 @@
<li>
<code>MAGIC_FEATURE_SIZE</code>: Storlek på magiskt verktyg (<code>--nomagicsizes</code>) </li>
</ul>
Ditt/dina magiska verktyg kan vilja reagera på olika sätt beroende på om en eller flera funktioner har inaktiverats. (Till exempel har det magiska verktyget "Brick" alltid erbjudit två verktygsvarianter: stort och litet. Med tillägget av storleksfunktionen behövs bara ett verktyg. Men när storleksalternativet är inaktiverat kan plugin-programmet återgå till att tillhandahålla två separata verktyg) </p>
Ditt/dina magiska verktyg kan vilja reagera på olika sätt beroende på om en eller flera funktioner har inaktiverats. (Till exempel har det magiska verktyget "Brick" alltid erbjudit två verktygsvarianter: stort och litet. Med tillägget av storleksfunktionen behövs bara ett verktyg. Men när storleksalternativet är inaktiverat kan tilläggsprogrammet återgå till att tillhandahålla två separata verktyg) </p>
<p>
Variabeln <code>complexity_level</code> innehåller den "komplexitetsnivå" som Rita med Tux magiska verktyg kan erbjuda - det vill säga användarens expertisnivå. Nivåerna definieras i <code>tp_magic_api.h:</code>: <ul>
<li>
@ -302,7 +302,7 @@
<li>
<code>MAGIC_COMPLEXITY_BEGINNER</code> (1): Nybörjare (<code>--complexity=beginner</code>) </li>
<li>
<code>MAGIC_COMPLEXITY_ADVANCED</code> (2): Advanced (default) (<code>--complexity=advanced</code>) </li>
<code>MAGIC_COMPLEXITY_ADVANCED</code> (2): Avancerad (standard) (<code>--complexity=advanced</code>) </li>
</ul>
Ditt/dina Magic-verktyg kanske vill reagera olika beroende på användarens kunskapsnivå, antingen genom att förenkla hur varje verktyg fungerar eller genom att utesluta ett eller flera av dem helt. (Till exempel är verktygsuppsättningarna för 1-, 2- och 3-punktsperspektiv helt inaktiva i läget "nybörjare". I "nybörjarläget" är ritverktygen tillgängliga, men verktygen för att redigera vanishing-punkternas positioner är inaktiverade; standardvanishing-punkterna används. I själva verket visas i "nybörjar"-läget ytterligare ett ritverktyg för 3-punktsperspektiv, med alternativa vanishingpunkter) </p>
<p>
@ -312,7 +312,7 @@
<dt><code><b>int get_tool_count(magic_api * api)</b></code></dt>
<dd>
<p>
Detta ska returnera antalet magiska verktyg som detta plugin tillhandahåller till Rita med Tux. </p>
Detta ska returnera antalet magiska verktyg som detta tillägg tillhandahåller till Rita med Tux. </p>
<p>
<b>Obs:</b> Anropas en gång av Rita med Tux, vid start. Den anropas efter din<code>"init()</code>", om den lyckades. </p>
<p>
@ -328,7 +328,7 @@
<li>
<code>MODE_PAINT</code> - måla på fri hand (klicka och dra) </li>
<li>
<code>MODE_FULLSCREEN</code> - applies to full image with one click </li>
<code>MODE_FULLSCREEN</code> - gäller för hela bilden med ett klick </li>
<li>
<code>MODE_PAINT_WITH_PREVIEW</code> - frihandsmålning, med förhandsgranskning (klicka och dra) </li>
<li>
@ -336,7 +336,7 @@
</ul>
t.ex. om ditt verktyg är det enda som användaren kan måla med, returnera<code>"MODE_PAINT</code>". Om användaren kan göra båda, returnera<code>"MODE_PAINT | MODE_FULLSCREEN</code>" för att tala om för Rita med Tux att den kan göra båda. </p>
<p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt plugin påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt tillägg påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
<p>
<b>Obs:</b> Tillagd till Rita med Tux 0.9.21; Magic API-version 0x00000002. </p>
</dd>
@ -348,7 +348,7 @@
<p>
Rita med Tux kommer att <code>free()</code> strängen vid avslutning, så du bör linda in den i ett C <code>strdup()</code> -anrop. </p>
<p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt plugin påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt tillägg påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
</dd>
<dt><code><b>int get_group(magic_api * api, int which)</b></code></dt>
@ -372,7 +372,7 @@
</ul>
</p>
<p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt plugin påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt tillägg påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
<p>
<b>Obs:</b> Tillagd till Rita med Tux 0.9.27; Magic API-version 0x00000005. </p>
</dd>
@ -384,7 +384,7 @@
<p>
Rita med Tux kommer att frigöra ("<code>SDL_FreeSurface()</code>") ytan när den avslutas. </p>
<p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt plugin påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). <p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt tillägg påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). <p>
</dd>
<dt><code><b>char * get_description(magic_api * api, int which, int mode)</b></code></dt>
@ -394,9 +394,9 @@
<p>
Rita med Tux kommer att <code>free()</code> strängen vid avslutning, så du bör linda in den i ett C <code>strdup()</code> -anrop. </p>
<p>
<b>Obs:</b> För varje Magic-verktyg som ditt plugin påstår sig innehålla (rapporterat av din "<code>get_tool_count()</code>"-funktion), kommer denna funktion att anropas för varje läge som verktyget påstår sig stödja (rapporterat av din "<code>modes()</code>"-funktion). </p>
<b>Obs:</b> För varje Magic-verktyg som ditt tillägg påstår sig innehålla (rapporterat av din "<code>get_tool_count()</code>"-funktion), kommer denna funktion att anropas för varje läge som verktyget påstår sig stödja (rapporterat av din "<code>modes()</code>"-funktion). </p>
<p>
Med andra ord, om ditt plugin innehåller två verktyg, ett som bara fungerar i färgläge och det andra som fungerar i både färgläge och fullbildsläge, kommer ditt plugins<code>"get_description()</code>" att anropas tre gånger. </p>
Med andra ord, om ditt tillägg innehåller två verktyg, ett som bara fungerar i färgläge och det andra som fungerar i både färgläge och helbildsläge, kommer ditt tilläggs "<code>get_description()</code>" att anropas tre gånger. </p>
</dd>
<dt><code><b>int requires_colors(magic_api * api, int which)</b></code></dt>
@ -404,7 +404,7 @@
<p>
Returnerar en "1" om "Magic"-verktyget accepterar färger (paletten "Colors" i Rita med Tux kommer att vara tillgänglig), eller "0" om inte. </p>
<p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt plugin påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
<b>Observera:</b> Anropas en gång för varje Magic-verktyg som ditt tillägg påstår sig innehålla (genom ditt<code>"get_tool_count()</code>"). </p>
</dd>
<dt><code><b>Uint8 accepted_sizes(magic_api * api, int which, int mode)</b></code></dt>
@ -412,7 +412,7 @@
<p>
Returnerar hur många storleksvariationer som 'Magic'-verktyget accepterar i det angivna läget (dvs.<code>'MODE_PAINT</code>' eller<code>'MODE_FULLSCREEN</code>). Returnera '0' om 'Magic'-verktyget inte ska erbjuda storleksalternativ. Att returnera '1' är samma sak som att returnera '0'. </p>
<p>
<b>Obs:</b> För varje Magic-verktyg som ditt plugin påstår sig innehålla (rapporterat av din "<code>get_tool_count()</code>"-funktion), kommer denna funktion att anropas för varje läge som verktyget påstår sig stödja (rapporterat av din "<code>modes()</code>"-funktion). </p>
<b>Obs:</b> För varje Magic-verktyg som ditt tillägg påstår sig innehålla (rapporterat av din "<code>get_tool_count()</code>"-funktion), kommer denna funktion att anropas för varje läge som verktyget påstår sig stödja (rapporterat av din "<code>modes()</code>"-funktion). </p>
<p>
<b>Obs:</b> Tillagd till Rita med Tux 0.9.30; Magic API-version 0x00000008. </p>
</dd>
@ -422,7 +422,7 @@
<p>
Returnerar den standardstorlek som verktyget "Magic" ska börja med i det angivna läget. Detta kommer att vara standardinställningen för verktyget första gången det används under en Rita med Tux-session. Om Rita med Tux anropas med storleksalternativet avaktiverat kommer detta att vara den enda storlek som Rita med Tux begär. Returnera ett tal mellan '1' och det belopp som du returnerade i <code>accepted_sizes()</code>. </p>
<p>
<b>Obs:</b> För varje Magic-verktyg som ditt plugin påstår sig innehålla (rapporterat av din "<code>get_tool_count()</code>"-funktion), kommer denna funktion att anropas för varje läge som verktyget påstår sig stödja (rapporterat av din "<code>modes()</code>"-funktion). </p>
<b>Obs:</b> För varje Magic-verktyg som ditt tillägg påstår sig innehålla (rapporterat av din "<code>get_tool_count()</code>"-funktion), kommer denna funktion att anropas för varje läge som verktyget påstår sig stödja (rapporterat av din "<code>modes()</code>"-funktion). </p>
<p>
<b>Obs:</b> Tillagd till Rita med Tux 0.9.30; Magic API-version 0x00000008. </p>
</dd>
@ -430,9 +430,9 @@
<dt><code><b>void shutdown(magic_api * api)</b></code></dt>
<dd>
<p>
Plugin-programmet bör göra all upprensning här. Om du har allokerat något minne eller använt SDL_Mixer för att ladda några ljud under <code>init()</code>, till exempel, bör du <code>frigöra(</code> ) det allokerade minnet och <code>Mix_FreeChunk()</code> ljuden här. </p>
Tilläggsprogrammet bör göra all upprensning här. Om du har allokerat något minne eller använt SDL_Mixer för att ladda några ljud under <code>init()</code>, till exempel, bör du <code>frigöra(</code> ) det allokerade minnet och <code>Mix_FreeChunk()</code> ljuden här. </p>
<p>
<b>Note:</b> This function is called once, when Tux Paint exits. </p>
<b>Observera:</b> Denna funktion anropas en gång när Rita med Tux avslutas. </p>
</dd>
</dl>
</section><!-- H4: Plugin "housekeeping" functions -->
@ -440,7 +440,7 @@
<section class="indent"><!-- H4: Plugin event functions -->
<header>
<h4 id="eventfuncs">
Plugin-händelsefunktioner </h4>
Händelsefunktioner för tillägg </h4>
</header>
<dl>
@ -450,7 +450,7 @@
</dt>
<dd>
<p>
<code>switchin()</code> anropas när ett av plugin-programmets magiska verktyg blir aktivt, och <code>switchout()</code> anropas när ett blir inaktivt. Detta kan bero på att användaren just har klickat på ett specifikt magiskt verktyg (det aktuella verktyget kopplas ut och ett nytt kopplas in). </p>
<code>switchin()</code> anropas när ett av tilläggsprogrammets magiska verktyg blir aktivt, och <code>switchout()</code> anropas när ett blir inaktivt. Detta kan bero på att användaren just har klickat på ett specifikt magiskt verktyg (det aktuella verktyget kopplas ut och ett nytt kopplas in). </p>
<p>
Det kan också hända när användaren lämnar/återvänder från valet av "magiska" verktyg när han/hon utför någon annan aktivitet (t.ex. använder ett annat verktyg, som "Text" eller "Brush", aktiverar ett tillfälligt verktyg, som "Undo" och "Redo", eller återvänder från en dialog - eventuellt med en ny bild när den växlar tillbaka - som "Open", "New" eller "Quit"). I detta fall är samma magiska verktyg först "utslaget" och sedan "inslaget igen", vanligtvis några ögonblick senare. </p>
<p>
@ -466,7 +466,7 @@
<dt><code><b>void set_color(magic_api * api, int which, SDL_Surface * canvas, SDL_Surface * last, Uint8 r, Uint8 g, Uint8 b, SDL_Rect * update_rect) </b></code></dt>
<dd>
<p>
Rita med Tux anropar denna funktion för att informera insticksprogrammet om RGB-värdena för den aktuella valda färgen i Rita med Tuxs palett "Colors". (Funktionen anropas när ett av plugin-programmets magiska verktyg som accepterar färger blir aktivt, och när användaren väljer en ny färg medan ett sådant verktyg är aktivt) </p>
Rita med Tux anropar denna funktion för att informera insticksprogrammet om RGB-värdena för den aktuella valda färgen i Rita med Tuxs palett "Colors". (Funktionen anropas när ett av tilläggsprogrammets magiska verktyg som accepterar färger blir aktivt, och när användaren väljer en ny färg medan ett sådant verktyg är aktivt) </p>
<p>
I allmänhet kommer Magic-verktygen inte att ändra målarduken på något sätt när de får en uppdaterad färg, men det är möjligt. (Till exempel använder verktygen "Zoom" och "Perspective" effekter som använder det aktuella färgvalet som en solid bakgrund. Effekterna kan justeras med efterföljande klick/drag-operationer, men du kan också justera bakgrundsfärgen, utan att ändra zoomnivån eller perspektivet, genom att helt enkelt välja en ny färg) </p>
<p>
@ -476,7 +476,7 @@
<dt><code><b>void set_size(magic_api * api, int which, int mode, SDL_Surface * canvas, SDL_Surface * last, Uint8 size, SDL_Rect * update_rect) </b></code></dt>
<dd>
<p>
Rita med Tux anropar denna funktion för att informera insticksprogrammet om det valda storleksalternativet för "Magic"-verktyget. (Den anropas när ett av plugin-programmets magiska verktyg som accepterar storlekar blir aktivt, och när användaren väljer en ny storlek medan ett sådant verktyg är aktivt) </p>
Rita med Tux anropar denna funktion för att informera insticksprogrammet om det valda storleksalternativet för "Magic"-verktyget. (Den anropas när ett av tilläggsprogrammets magiska verktyg som accepterar storlekar blir aktivt, och när användaren väljer en ny storlek medan ett sådant verktyg är aktivt) </p>
<p>
I allmänhet kommer Magic-verktygen inte att ändra duken på något sätt när de får en uppdaterad storlek, men det är möjligt. </p>
<p>
@ -486,9 +486,9 @@
<dt><code><b>void click(magic_api * api, int which, int mode, SDL_Surface * snapshot, SDL_Surface * canvas, int x, int y, SDL_Rect * update_rect) </b></code></dt>
<dd>
<p>
Plugin-programmet ska tillämpa lämpligt "Magic"-verktyg på<code>"canvas</code>"-ytan. (x,y)-koordinaterna är var musen befann sig (inom canvasen) när musknappen klickades, och du får veta vilket "läge" ditt verktyg är i (dvs.<code>"MODE_PAINT</code>" eller<code>"MODE_FULLSCREEN</code>"). </p>
Tilläggsprogrammet ska tillämpa lämpligt "Magic"-verktyg på<code>"canvas</code>"-ytan. (x,y)-koordinaterna är var musen befann sig (inom canvasen) när musknappen klickades, och du får veta vilket "läge" ditt verktyg är i (dvs.<code>"MODE_PAINT</code>" eller<code>"MODE_FULLSCREEN</code>"). </p>
<p>
Plugin-programmet bör rapportera tillbaka vilken del av duken som påverkades genom att fylla i elementen (x,y) och (w,h) i<code>"update_rect</code>". </p>
Tilläggsprogrammet bör rapportera tillbaka vilken del av duken som påverkades genom att fylla i elementen (x,y) och (w,h) i<code>"update_rect</code>". </p>
<p>
Innehållet i teckningsytan omedelbart före musklicket lagras i<code>"snapshot</code>"-ytan. </p>
</dd>
@ -496,23 +496,23 @@
<dt><code><b>void drag(magic_api * api, int which, SDL_Surface * snapshot, SDL_Surface * canvas, int ox, int oy, int x, int y, SDL_Rect * update_rect)</b></code></dt>
<dd>
<p>
Plugin-programmet bör tillämpa lämpligt "Magic"-verktyg på<code>"canvas"</code>-ytan. Koordinaterna (ox,oy) och (x,y) är musens position i början och slutet av strecket. </p>
Tilläggsprogrammet bör tillämpa lämpligt "Magic"-verktyg på<code>"canvas"</code>-ytan. Koordinaterna (ox,oy) och (x,y) är musens position i början och slutet av strecket. </p>
<p>
Plugins som låter användaren "rita" effekter på duken använder vanligtvis Rita med Tux's<code>"line()</code>" 'Magic' tool plugin-hjälpfunktion för att beräkna punkterna på linjen mellan (ox,oy) och (x,y), och anropar en annan funktion inom pluginet för att tillämpa effekten vid varje punkt. (Se<a href="#tpfuncs">"Rita med Tux-funktioner och data</a>" nedan). </p>
Tillägg som låter användaren "rita" effekter på duken använder vanligtvis Rita med Tux "<code>line()</code>" 'Magic' tool tilläggshjälpfunktion för att beräkna punkterna på linjen mellan (ox,oy) och (x,y), och anropar en annan funktion inom pluginet för att tillämpa effekten vid varje punkt. (Se<a href="#tpfuncs">"Rita med Tux-funktioner och data</a>" nedan). </p>
<p>
Plugin-programmet bör rapportera tillbaka vilken del av duken som påverkades genom att fylla i elementen (x,y) och (w,h) i<code>"update_rect</code>". </p>
Tilläggsprogrammet bör rapportera tillbaka vilken del av duken som påverkades genom att fylla i elementen (x,y) och (w,h) i<code>"update_rect</code>". </p>
<p>
Obs: Innehållet i ritningsytan omedelbart före musklicket förblir detsamma som det var (när plugin-programmets "<code>click()</code>"-funktion anropades) och är fortfarande tillgängligt i<code>"snapshot</code>"-ytan. <p>
Obs: Innehållet i ritningsytan omedelbart före musklicket förblir detsamma som det var (när tilläggsprogrammets "<code>click()</code>"-funktion anropades) och är fortfarande tillgängligt i<code>"snapshot</code>"-ytan. <p>
</dd>
<dt><code><b>void release(magic_api * api, int which, SDL_Surface * snapshot, SDL_Surface * canvas, int x, int y, SDL_Rect * update_rect)</b></code></dt>
<dd>
<p>
Plugin-programmet bör använda lämpligt "Magic"-verktyg på<code>"canvas"</code>-ytan. (x,y)-koordinaterna är var musen befann sig (inom duken) när musknappen släpptes. </p>
Tilläggsprogrammet bör använda lämpligt "Magic"-verktyg på<code>"canvas"</code>-ytan. (x,y)-koordinaterna är var musen befann sig (inom duken) när musknappen släpptes. </p>
<p>
Plugin-programmet bör rapportera tillbaka vilken del av duken som påverkades genom att fylla i elementen (x,y) och (w,h) i "update_rect". </p>
Tilläggsprogrammet bör rapportera tillbaka vilken del av duken som påverkades genom att fylla i elementen (x,y) och (w,h) i "update_rect". </p>
<p>
<b>Obs:</b> Innehållet i ritningsytan omedelbart före musklicket förblir detsamma som det var (när plugin-programmets "<code>click()</code>"-funktion anropades) och är fortfarande tillgängligt i "snapshot"-ytan. </p>
<b>Obs:</b> Innehållet i ritningsytan omedelbart före musklicket förblir detsamma som det var (när tilläggsprogrammets "<code>click()</code>"-funktion anropades) och är fortfarande tillgängligt i "snapshot"-ytan. </p>
</dd>
</dl>
</section><!-- H4: Plugin event functions -->
@ -522,11 +522,11 @@
<section class="indent"><!-- H2: Tux Paint Functions and Data -->
<header>
<h2 id="tpfuncs">
Tux Paint Functions and Data </h2>
Tux Paint Funktioner och data </h2>
</header>
<p>
Rita med Tux tillhandahåller ett antal hjälpfunktioner som plugins kan komma åt via strukturen<code>"magic_api</code>", som skickas till alla plugins funktioner. (Se<a href="#toolfuncs">"Obligatoriska plugin-funktioner</a>" ovan.) </p>
Rita med Tux tillhandahåller ett antal hjälpfunktioner som tillägg kan komma åt via strukturen<code>"magic_api</code>", som skickas till alla plugins funktioner. (Se<a href="#toolfuncs">"Obligatoriska plugin-funktioner</a>" ovan.) </p>
<section class="indent"><!-- H3: Pixel Manipulations -->
<header>
@ -573,14 +573,14 @@
<p>
Denna funktion beräknar alla punkter på en linje mellan koordinaterna (x1,y1) och (x2,y2). Varje 'steg'-iteration anropar den funktionen 'callback'. </p>
<p>
Den skickar (x,y)-koordinaterna på linjen till "callback"-funktionen, Rita med Tuxs<code>"magic_api</code>"-struktur (som en<code>"void *</code>"-pekare som du måste skicka till den), ett "which"-värde som representerar vilket av plugin-programmets "Magic"-verktyg som används, och de aktuella och snapshot-bilderna. </p>
Den skickar (x,y)-koordinaterna på linjen till "callback"-funktionen, Rita med Tuxs<code>"magic_api</code>"-struktur (som en<code>"void *</code>"-pekare som du måste skicka till den), ett "which"-värde som representerar vilket av tilläggsprogrammets "Magi"-verktyg som används, och de aktuella och snapshot-bilderna. </p>
<p>
Exempel på prototyp av en callback-funktion som kan skickas till Rita med Tux's<code>"line()</code>" 'Magic' tool plugin helper-funktion: <blockquote><code>
Exempel på prototyp av en callback-funktion som kan skickas till Rita med Tux "<code>line()</code>" 'Magic' tool plugin helper-funktion: <blockquote><code>
void exampleCallBack(void * ptr_to_api, int which_tool, SDL_Surface * canvas, SDL_Surface * snapshot, int x, int y);
</code></blockquote>
</p>
<p>
Exempel på användning av<code>"line()</code>"-hjälpen (t.ex. inom ett plugins <code>draw()</code> -funktion): <blockquote><code>
Exempel på användning av<code>"line()</code>"-hjälpen (t.ex. inom ett tilläggs <code>draw()</code> -funktion): <blockquote><code>
api-&gt;line((void *) api, which, canvas, snapshot, ox, oy, x, y, 1, exampleCallBack);
</code></blockquote>
</p>
@ -627,11 +627,11 @@
<p>
Denna sträng innehåller den katalog där Rita med Tuxs datafiler lagras. På Linux kan detta till exempel vara<code>"/usr/share/tuxpaint/</code>". </p>
<p>
Magiska verktyg bör innehålla en ikon (se<code>"get_icon(</code>)", ovan) och uppmuntras att innehålla ljudeffekter, det är användbart för plugins att veta var sådana saker finns. </p>
Magiska verktyg bör innehålla en ikon (se<code>"get_icon(</code>)", ovan) och uppmuntras att innehålla ljudeffekter, det är användbart för tillägg att veta var sådana saker finns. </p>
<p>
Vid kompilering och installation av ett insticksprogram bör kommandoradsverktyget<code>"tp-magic-config</code>" användas för att avgöra var sådana data ska placeras för att den installerade versionen av Rita med Tux ska hitta dem. (Se<a href="#installing">"Installera</a>" nedan.) </p>
<p>
<b>Obs:</b> Om ditt plugin är installerat lokalt (<code>t.</code>ex. i din katalog<code>"~/.tuxpaint/plugins/</code>"), snarare än globalt (systemövergripande), kommer värdet<code>"data_directory</code>" att vara annorlunda. (<code>t.ex. "<i>/home/användarnamn/</i>.tuxpaint/plugins/data/</code>"). <p>
<b>Obs:</b> Om ditt tillägg är installerat lokalt (<code>t.</code>ex. i din katalog<code>"~/.tuxpaint/plugins/</code>"), snarare än globalt (systemövergripande), kommer värdet<code>"data_directory</code>" att vara annorlunda. (<code>t.ex. "<i>/home/användarnamn/</i>.tuxpaint/plugins/data/</code>"). <p>
</dd>
</dl>
</section><!-- H3: Informational -->
@ -639,7 +639,7 @@
<section class="indent"><!-- H3: Sound Functions -->
<header>
<h3 id="sound">
Sound Functions </h3>
Ljudfunktioner </h3>
</header>
<dl>
@ -688,7 +688,7 @@
<section class="indent"><!-- H3: Tux Paint System Calls -->
<header>
<h3 id="syscalls">
Tux Paint System Calls </h3>
Systemanrop för Tux Paint </h3>
</header>
<dl>
@ -789,7 +789,7 @@
<section class="indent"><!-- H2: Constant Definitions in tp_magic_api.h -->
<header>
<h2 id="consts">
Constant Definitions in "<code>tp_magic_api.h</code>" </h2>
Konstantdefinitioner i "<code>tp_magic_api.h</code>" </h2>
</header>
<p>
@ -801,9 +801,9 @@
<p>
Detta heltalsvärde representerar vilken version av Rita med Tux 'Magic' tool API som rubriken motsvarar. </p>
<p>
Det bör refereras till av ditt magiska verktygs<code>"api_version()"</code>-funktion, för att informera den löpande kopian av Rita med Tux om ditt plugin är kompatibelt eller inte. </p>
Det bör refereras till av ditt magiska verktygs<code>"api_version()"</code>-funktion, för att informera den löpande kopian av Rita med Tux om ditt tillägg är kompatibelt eller inte. </p>
<p>
<b>Obs:</b> Detta versionsnummer motsvarar inte Rita med Tux's eget versionsnummer (t.ex. "0.9.36"). API:et kommer inte att ändras varje gång en ny version av Rita med Tux släpps, vilket innebär att plugins som kompilerats för tidigare versioner av Rita med Tux ofta kommer att köras under nyare versioner. </p>
<b>Obs:</b> Detta versionsnummer motsvarar inte Rita med Tux's eget versionsnummer (t.ex. "0.9.36"). API:et kommer inte att ändras varje gång en ny version av Rita med Tux släpps, vilket innebär att tillägg som kompilerats för tidigare versioner av Rita med Tux ofta kommer att köras under nyare versioner. </p>
</dd>
<dt>
@ -820,24 +820,24 @@
<section class="outer"><!-- H1: Compiling -->
<header>
<h1 id="compiling">
Compiling </h1>
Kompilering </h1>
</header>
<section class="indent"><!-- H2: Linux and other Unix-like Platforms -->
<header>
<h2 id="compiling-linux">
Linux and other Unix-like Platforms </h2>
Linux och andra Unix-liknande plattformar </h2>
</header>
<p>
Använd C-kompilatorns kommandoradsalternativ<code>"-shared</code>" för att generera en fil med delade objekt ("<code>.so</code>") baserat på C-källkoden för ditt verktygsplugin 'Magic'. </p>
Använd C-kompilatorns kommandoradsalternativ<code>"-shared</code>" för att generera en fil med delade objekt ("<code>.so</code>") baserat på C-källkoden för ditt verktygstillägget 'Magi'. </p>
<p>
Använd kommandot<code>"tp-magic-config --cflags</code>", som levereras som en del av Rita med Tux - eller i vissa fall som en del av ett "Rita med Tux 'Magic' Tool Plugin Development package" - för att tillhandahålla ytterligare kommandoradsflaggor till din C-kompilator som hjälper den att bygga ditt plugin. </p>
<section class="indent"><!-- H3: Command-Line Example -->
<header>
<h3>
Command-Line Example </h3>
Exempel på kommandoraden </h3>
</header>
<p>
@ -885,7 +885,7 @@
<section class="indent"><!-- H3: Advanced Makefile -->
<header>
<h3>
Advanced Makefile </h3>
Avancerad Makefile </h3>
</header>
<p>
@ -931,13 +931,13 @@
<section class="outer"><!-- H1: Installing -->
<header>
<h1 id="installing">
Installing </h1>
Installering </h1>
</header>
<section class="indent"><!-- H2: Linux and other Unix-like Platforms -->
<header>
<h2 id="installing-linux">
Linux and other Unix-like Platforms </h2>
Linux och andra Unix-liknande plattformar </h2>
</header>
<p>
@ -970,7 +970,7 @@
<section class="indent"><!-- H3: Documentation -->
<header>
<h3>
Documentation </h3>
Dokumentation </h3>
</header>
<p>
@ -1064,13 +1064,13 @@
Under det finns ett<code>"install</code>"-mål i Makefile. (Påkallas av till exempel<code>"$ sudo make install</code>" eller<code>"# make install</code>") </p>
<p>
Målet<code>"install</code>" använder<code>"mkdir -p</code>" för att se till att plugin-katalogen finns, använder sedan<code>"cp</code>" för att kopiera alla plugin ("<code>.so</code>")-filer till den och anropar<code>"chmod</code>" för att se till att de är läsbara. </p>
Målet<code>"install</code>" använder<code>"mkdir -p</code>" för att se till att tilläggskatalogen finns, använder sedan "<code>cp</code>" för att kopiera alla plugin ("<code>.so</code>")-filer till den och anropar<code>"chmod</code>" för att se till att de är läsbara. </p>
<p>
Därefter utförs en liknande serie kommandon för att installera ikonfiler ("<code>.png</code>"-bilder) och ljudeffekter ("<code>.ogg</code>"-filer) i underkataloger i Rita med Tuxs datakatalog och för att installera dokumentation ("<code>.html</code>"- och "<code>.txt</code>"-filer) i Rita med Tuxs dokumentationskatalog. </p>
<p>
<b>Obs:</b> Makefile-exemplet ovan förutsätter att användaren har behörighet att installera Rita med Tux-plugins i hela systemet. </p>
<b>Obs:</b> Makefile-exemplet ovan förutsätter att användaren har behörighet att installera Rita med Tux-tillägg i hela systemet. </p>
</section><!-- H3: Putting it Together in a Makefile -->
</section><!-- H2: Linux and other Unix-like Platforms -->
@ -1097,14 +1097,14 @@
<section class="outer"><!-- H1: Creating plugins with multiple effects -->
<header>
<h1 id="multiple">
Skapa plugins med flera effekter </h1>
Skapa tillägg med flera effekter </h1>
</header>
<p>
Plugins för Rita med Tux kan innehålla mer än en effekt. Om du har flera effekter som liknar varandra kan det vara vettigt att placera dem i en plugin-fil för att minska overhead och dela kod. </p>
Tillägg för Rita med Tux kan innehålla mer än en effekt. Om du har flera effekter som liknar varandra kan det vara vettigt att placera dem i en tilläggsfil för att minska overhead och dela kod. </p>
<p>
Följande förslag kan hjälpa dig att skapa plugins som innehåller flera effekter:
Följande förslag kan hjälpa dig att skapa tillägg som innehåller flera effekter:
<ul>
<li>
Använd C<code>"enum</code>" för att räkna upp effekterna och räkna dem. <blockquote><code>
@ -1121,9 +1121,9 @@
<li>
Skapa arrayer av längden<code>"NUM_TOOLS</code>" för att innehålla effektspecifika data. <blockquote><code>
char * my_plugin_snd_filnamn[NUM_TOOLS] = {<br>
char * my_plugin_snd_filenames[NUM_TOOLS] = {<br>
&nbsp;&nbsp;&nbsp;&nbsp;"one.ogg", "another.ogg", "yet_another.ogg" };<br>
Mix_Chunk * min_plugin_snds[NUM_TOOLS]");
Mix_Chunk * my_plugin_snds[NUM_TOOLS]");
</code></blockquote>
</li>
@ -1134,12 +1134,12 @@
<br>
for (i = 0; i &lt; NUM_TOOLS; i++)<br>
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;/* Becomes, for example, "/usr/share/tuxpaint/sounds/magic/one.ogg" */<br>
&nbsp;&nbsp;&nbsp;&nbsp;/* Blir till exempel "/usr/share/tuxpaint/sounds/magic/one.ogg" */<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;snprintf(fname, sizeof(fname), "%s/sounds/magic/%<!-- -->s",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;api-&gt;data_prefix, my_plugin_snd_filnamn[i]);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;api-&gt;data_prefix, my_plugin_snd_filenames[i]);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;min_plugin_snds[i] = Mix_LoadWAV(fname);<br>
&nbsp;&nbsp;&nbsp;&nbsp;my_plugin_snds[i] = Mix_LoadWAV(fname);<br>
}
</code></blockquote>
</li>
@ -1149,7 +1149,7 @@
&nbsp;&nbsp;&nbsp;&nbsp;int i;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;for (i = 0; i &lt; NUM_TOOLS; i++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mix_FreeChunk(min_plugin_snds[i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mix_FreeChunk(my_plugin_snds[i]);
</code></blockquote>
</li>
@ -1159,7 +1159,7 @@
</p>
<p>
<b>Observera:</b> Även om ditt plugin för närvarande bara innehåller en effekt, kan det vara bra att följa stegen ovan så att du kan lägga till en ny variant av en effekt med liten ansträngning. ("<code>NUM_TOOLS</code>" kommer helt enkelt att vara '1', dina arrayer kommer att ha längden '1', etc.) </p>
<b>Observera:</b> Även om ditt tillägg för närvarande bara innehåller en effekt, kan det vara bra att följa stegen ovan så att du kan lägga till en ny variant av en effekt med liten ansträngning. ("<code>NUM_TOOLS</code>" kommer helt enkelt att vara '1', dina arrayer kommer att ha längden '1', etc.) </p>
</section><!-- H1: Creating plugins with multiple effects -->
@ -1167,7 +1167,7 @@
<section class="outer"><!-- H1: Example Code -->
<header>
<h1 id="examples">
Example Code </h1>
Exempelkod </h1>
</header>
<p>
@ -1203,7 +1203,7 @@
Se "ampersand" </dd>
<dt><code>*</code></dt>
<dd>
Se "star" </dd>
Se "stjärna" </dd>
<dt><code>-&gt;</code></dt>
<dd>
Se "pil" </dd>
@ -1212,7 +1212,7 @@
Se "punkt" </dd>
<dt><code>`</code></dt>
<dd>
Se "grave" </dd>
Se "grav" </dd>
<dt>alfa</dt>
<dd>
Se "RGBA" </dd>
@ -1223,7 +1223,7 @@ Se även: "bit" </dd>
<dt>ampersand (pekare)</dt>
<dd>
<code>"&amp;"</code>. En symbol i C som gör det möjligt att referera till minnesadressen för en variabel, dvs. en pekare. (Tänk till exempel på<code>"int i;</code>". Senare hänvisar<code>"&amp;i</code>" till minnet där "<code>i</code>" är lagrat, inte värdet på "<code>i</code>" i sig; det är en "pekare till<code>"i</code>"") <br/>
Se även: "star" </dd>
Se även: "stjärna" </dd>
<dt>API</dt>
<dd>
Gränssnitt för applikationsprogrammering. <i>Definitionen har ännu inte presenterats.</i> </dd>
@ -1232,7 +1232,7 @@ Se även: "star" </dd>
Ett värde som skickas till en funktion. </dd>
<dt>backquote / backtick</dt>
<dd>
Se "grave" </dd>
Se "grav" </dd>
<dt>BASH</dt>
<dd>
"Bourne Again Shell", ett skal- och kommandospråk för Unix. </dd>
@ -1264,13 +1264,6 @@ Se även: "Prototyp för C-funktion" </dd>
<dt>C-uppräkning</dt>
<dd>
En konstruktion i C som gör det möjligt att märka numeriska värden (som vanligtvis börjar på 0 och ökar med ett). (t.ex.<code>"enum { ONE, TWO, THREE };</code>" </dd>
<dt>colorspace</dt>
<dd>
<i>Definitionen har ännu inte presenterats.</i> <br/>
See also:
<ul>
<li>RGBA</li><li>HSV</li></ul>
</dd>
<dt><code>#define</code></dt>
<dd>
En C-sats som definierar en substitution som kan förekomma senare i koden. Används vanligen för konstanta värden (t.ex. "<code>#define RADIUS 16</code>"; alla förekomster av<code>"RADIUS</code>" ersätts med<code>"16</code>"), men kan också användas för att skapa makron. Placeras vanligtvis i C-headerfiler. </dd>
@ -1286,14 +1279,14 @@ See also:
<dt>dra</dt>
<dd>
Att flytta en mus medan knappen hålls intryckt, eller att flytta ett finger eller en penna över en skärm eller surfplatta utan att ta bort den. <br/>
See also:
Se även:
<ul>
<li>klick</li><li>utgåva</li></ul>
</dd>
<dt>element</dt>
<dd>
En variabel som lagras inom en C-struktur. (Exempel: elementen<code>"w</code>" och<code>"h</code>" i SDL_Surface lagrar ytans bredd respektive höjd) <br/>
See also:
Se även:
<ul>
<li>C-struktur</li><li>punkt</li><li>pil</li></ul>
</dd>
@ -1302,8 +1295,8 @@ See also:
Se "C-uppräkning" </dd>
<dt><code>float</code></dt>
<dd>
Se "floating point" </dd>
<dt>floating point</dt>
Se "flyttal" </dd>
<dt>flyttal</dt>
<dd>
<i>Definitionen har ännu inte presenterats.</i> <br/>
Se även: "heltal" </dd>
@ -1313,9 +1306,16 @@ Se även: "heltal" </dd>
<dt><code>free()</code></dt>
<dd>
En C-funktion som frigör (deallokerar) minne som allokerats av andra C-funktioner (t.ex. "<code>strdup(</code>)").<br/>Se manuskriptet "<code>malloc(3)</code>" <i>man page</i>. </dd>
<dt>function</dt>
<dt>funktion</dt>
<dd>
Se "C-funktion" </dd>
<dt>färgrymd</dt>
<dd>
<i>Definitionen har ännu inte presenterats.</i> <br/>
Se även:
<ul>
<li>RGBA</li><li>HSV</li></ul>
</dd>
<dt><code>gcc</code></dt>
<dd>
Se "GNU C-kompilator" </dd>
@ -1326,7 +1326,7 @@ Se även: "Krita" </dd>
<dt>GNU C-kompilator</dt>
<dd>
GNU C-kompilatorn, ett portabelt Open Source-paket för kompilering och länkning av program skrivna i programspråket C.<br/>Se manuskriptet "<code>gcc(1)</code>" <i>man page</i>. </dd>
<dt>grave</dt>
<dt>grav</dt>
<dd>
Den "<code><font size=+1>`</font></code>"; används av BASH-skalet för att använda utdata från ett kommando som kommandoradsargument för ett annat. </dd>
<dt>grön</dt>
@ -1338,13 +1338,13 @@ Se även: "Krita" </dd>
<dt>heltal</dt>
<dd>
<i>Definitionen har ännu inte presenterats.</i> <br/>
Se även: "floating point" </dd>
Se även: "flyttal" </dd>
<dt>HSV</dt>
<dd>
Färgton, mättnad och värde.<i>Definitionen har ännu inte presenterats.</i> <br/>
See also:
Se även:
<ul>
<li>RGBA</li><li>colorspace</li></ul>
<li>RGBA</li><li>färgrymd</li></ul>
</dd>
<dt>huvudfil</dt>
<dd>
@ -1367,7 +1367,7 @@ See also:
<dt>klick</dt>
<dd>
Att trycka på en knapp på en mus, trycka på en pekskärm eller trycka en penna mot en surfplatta. <br/>
See also:
Se även:
<ul>
<li>dra</li><li>utgåva</li></ul>
</dd>
@ -1384,12 +1384,12 @@ Se även: "GIMP" </dd>
<dt>linjär</dt>
<dd>
<i>Definitionen har ännu inte presenterats.</i> </dd>
<dt>Magic tool</dt>
<dd>
En av ett antal effekter eller ritverktyg i Rita med Tux, som görs tillgängliga via verktygsknappen "Magic". </dd>
<dt><code>magic_api</code></dt>
<dd>
En C-struktur som skickas vidare till ett plugins funktioner som exponerar data och funktioner i den löpande kopian av Rita med Tux. </dd>
En C-struktur som skickas vidare till ett tilläggs funktioner som exponerar data och funktioner i den löpande kopian av Rita med Tux. </dd>
<dt>Magiverktyg</dt>
<dd>
En av ett antal effekter eller ritverktyg i Rita med Tux, som görs tillgängliga via verktygsknappen "Magic". </dd>
<dt><code>make</code></dt>
<dd>
Ett verktyg som automatiskt avgör vilka delar av ett större program som behöver kompileras om och ger kommandon för att kompilera om dem. <br/>
@ -1409,7 +1409,10 @@ Se även: "Makefile" </dd>
<dt><code>Mix_LoadWAV()</code></dt>
<dd>
En SDL_mixer-funktion som laddar en ljudfil (WAV, Ogg Vorbis, etc.) och returnerar den som en<code>"Mix_Chunk *</code>". </dd>
<dt>namespace</dt>
<dt>mättnad</dt>
<dd>
Se "HSV" </dd>
<dt>namnrymd</dt>
<dd>
<i>Definitionen har ännu inte presenterats.</i> </dd>
<dt>nyans</dt>
@ -1425,19 +1428,22 @@ Se även: "WAVE" </dd>
<dt>osignerad</dt>
<dd>
I C kan en variabel som kan lagra ett numeriskt värde deklareras som antingen "signerad" (standard) eller "osignerad". I det förra fallet används en bit av värdet för att ange värdets tecken (antingen positivt eller negativt). I det senare fallet kan värdet bara vara positivt, men det finns en extra lagringsbit för talet. En signerad byte (8 bitar) kan t.ex. representera vilket tal som helst mellan -128 och 127. En osignerad byte kan gå upp till 255, men den kan inte gå under 0. För grafik i SDL bör osignerade värden användas för RGB-värden, eftersom varje kanal (röd, grön och blå) kan vara mellan 0 (släckt) och 255 (ljusast). <br/>
See also:
Se även:
<ul>
<li>Uint8</li><li>Uint32</li><li>integer</li></ul>
</dd>
<dt>peka</dt>
<dd>
Se "klick" </dd>
<dt>pekare</dt>
<dd>
Se "C-pekare" </dd>
<dt>pil</dt>
<dd>
<code>"-&gt;"</code>. En symbol i C som refererar till ett element inom en pekare till en struktur. </dd>
<dt><code>.png</code></dt>
<dd>
Se "Portable Network Graphics" </dd>
<dt>pointer</dt>
<dd>
Se "C-pekare" </dd>
<dt>Portable Network Graphics</dt>
<dd>
Portable Network Graphics. Ett utbyggbart filformat för förlustfri, portabel och välkomprimerad lagring av rasterbilder. Det är det filformat som Rita med Tux använder för att spara bilder och för sina penslar och stämplar. Det är ett enkelt sätt att lagra 32bpp RGBA-bilder (24bpp äkta färg med full 8bpp alfa-genomskinlighet), utmärkt för användning i grafikprogram som Rita med Tux.<br/>Se manuskriptet "<code>png(5)</code>" <i>man page</i>. <br/>
@ -1452,7 +1458,7 @@ Se även: "C-funktion" </dd>
<dt>punkt</dt>
<dd>
"<code>.</code>". En symbol i C som refererar till ett element inom en struktur. <br/>
See also:
Se även:
<ul>
<li>C-struktur</li><li>pil</li></ul>
</dd>
@ -1462,16 +1468,13 @@ See also:
<dt>RGBA</dt>
<dd>
Röd, grön, blå och alfa.<i>Definitionen har ännu inte presenterats.</i> <br/>
See also:
Se även:
<ul>
<li>HSV</li><li>colorspace</li></ul>
<li>HSV</li><li>färgrymd</li></ul>
</dd>
<dt>röd</dt>
<dd>
Se "RGBA" </dd>
<dt>saturation</dt>
<dd>
Se "HSV" </dd>
<dt>SDL</dt>
<dd>
Se "Simple DirectMedia Layer" </dd>
@ -1481,7 +1484,7 @@ See also:
<dt><code>SDL_GetRGB()</code></dt>
<dd>
En libSDL-funktion som, med tanke på ett <code>Uint32-pixelvärde</code> (t.ex. ett som returneras från Rita med Tux's Magic tool API-hjälpfunktionen "getpixel<code>()</code>"), formatet på ytan som pixeln togs från och pekare till tre <code>Uint8-variabler</code>, placerar pixelns RGB-värden (rött, grönt och blått) i de tre <code>Uint8-variablerna</code>. (Exempel:<code>"SDL_GetRGB(getpixel(surf, x, y), surf-&gt;format, &amp;r, &amp;g, &amp;b);</code>"<br/>Se manuskriptet "<code>SDL_GetRGB(3)</code>" <i>man page</i>. <br/>
See also:
Se även:
<ul>
<li>SDL_MapRGB()</li><li>RGBA</li></ul>
</dd>
@ -1491,7 +1494,7 @@ See also:
<dt><code>SDL_MapRGB()</code></dt>
<dd>
En libSDL-funktion som, givet formatet på en yta och <code>Uint8-värden</code> som representerar röda, gröna och blå värden för en pixel, returnerar ett <code>Uint32-pixelvärde</code> som kan placeras i ytan (t.ex. med hjälp av Rita med Tux's Magic tool API-hjälpfunktion<code>"putpixel()")</code>. (Exempel:<code>"putpixel(surf, x, y, SDL_MapRGB(surf-&gt;format, r, g, b));</code>".)<br/>Se manuskriptet "<code>SDL_MapRGB(3)</code>" <i>man page</i>. <br/>
See also:
Se även:
<ul>
<li>SDL_GetRGB()</li><li>RGBA</li></ul>
</dd>
@ -1522,7 +1525,7 @@ See also:
<dt>sRGB</dt>
<dd>
Se "RGBA" </dd>
<dt>star</dt>
<dt>stjärna</dt>
<dd>
<code>"*</code>". En symbol i C som, när den används i deklarationen av variabler (t.ex. argument till en funktion), anger att variabeln är en pekare. (Till exempel<code>"int * p;</code>" betyder att<code>"p</code>" är en <i>pekare</i> till ett heltal.) När den används bredvid en pekare "dereferencerar" den variabeln. (Till exempel, senare<code>"*p = 50;</code>" tilldelar värdet 50 till det minne som "<code>p</code>" pekar på; det ändrar inte värdet på "<code>p</code>", som fortfarande är en pekare på ett heltal. I själva verket ändras det heltal som pekas ut) <br/>
Se även: "ampersand" </dd>
@ -1532,37 +1535,34 @@ Se även: "ampersand" </dd>
<dt><code>struct</code></dt>
<dd>
Se "C-struktur" </dd>
<dt>tap</dt>
<dd>
Se "klick" </dd>
<dt><code>tp-magic-config</code></dt>
<dd>
Ett kommandoradsprogram som ger information om den installerade versionen av Rita med Tux till plugin-utvecklare (t.ex. vilka C-kompilatorflaggor de ska kompilera med och var plugin-delade objekt och datafiler ska installeras).<br/>Se manuskriptet "<code>tp-magic-config(3)</code>" <i>man page</i>. </dd>
Ett kommandoradsprogram som ger information om den installerade versionen av Rita med Tux till tilläggsutvecklare (t.ex. vilka C-kompilatorflaggor de ska kompilera med och var plugin-delade objekt och datafiler ska installeras).<br/>Se manuskriptet "<code>tp-magic-config(3)</code>" <i>man page</i>. </dd>
<dt><code>tp_magic_api.h</code></dt>
<dd>
En header-fil som definierar Rita med Tuxs API för magiska verktyg. Plugins måste<code>'#inkludera</code>' den. </dd>
En header-fil som definierar Rita med Tuxs API för magiska verktyg. Tillägg måste '<code>#include</code>' den. </dd>
<dt><code>Uint32</code></dt>
<dd>
Ett 32-bitars, osignerat heltal (definierat av libSDL). Med andra ord, fyra byte som kan representera 0 till 4 294 967 295. (Används vanligtvis för att hålla tillräckligt med information för att lagra tre eller fyra byte som representerar en pixels färg; dvs. RBGA-värde). <br/>
See also:
Se även:
<ul>
<li>Uint8</li><li>integer</li><li>unsigned</li></ul>
</dd>
<dt><code>Uint8</code></dt>
<dd>
Ett 8-bitars, osignerat heltal (definierat av libSDL). Med andra ord, en byte som kan representera 0 till 255. <br/>
See also:
Se även:
<ul>
<li>Uint32</li><li>integer</li><li>unsigned</li></ul>
</dd>
<dt>utgåva</dt>
<dd>
Att släppa en musknapp eller att ta bort ett finger eller en pekpenna från en skärm eller surfplatta. <br/>
See also:
Se även:
<ul>
<li>klick</li><li>dra</li></ul>
</dd>
<dt>variable</dt>
<dt>variabel</dt>
<dd>
En konstruktion i datorprogrammering som innehåller ett värde som kan refereras till igen senare genom att hänvisa till variabelns namn, och vanligtvis ändras senare. Till exempel kan en variabel som innehåller någons ålder deklareras som ett heltal:<code>"int age</code>;". Den kan undersökas senare - t.ex.<code>"if (age &gt;= 18) { /* they are an adult */ } else { /* they are not an adult */ } }</code>" - och även ändras senare - t.ex. <code>age = 32; /* set age to 32 */</code> </dd>
<dt>värde</dt>