Regen'd Swedish documentation
h/t Daniel N.
This commit is contained in:
parent
fb0460894c
commit
509dfff633
12 changed files with 488 additions and 473 deletions
|
|
@ -6,7 +6,7 @@ Copyright (c) 2002-2025
|
||||||
Various contributors (see below, and AUTHORS.txt)
|
Various contributors (see below, and AUTHORS.txt)
|
||||||
https://tuxpaint.org/
|
https://tuxpaint.org/
|
||||||
|
|
||||||
2025.September.9 (0.9.36)
|
2025.September.28 (0.9.36)
|
||||||
* Documentation updates:
|
* Documentation updates:
|
||||||
----------------------
|
----------------------
|
||||||
+ Describe where Tux Paint searches for system fonts,
|
+ Describe where Tux Paint searches for system fonts,
|
||||||
|
|
@ -54,6 +54,12 @@ https://tuxpaint.org/
|
||||||
+ Portuguese (Portugal) translation
|
+ Portuguese (Portugal) translation
|
||||||
Hugo Carvalho <hugokarvalho@hotmail.com>
|
Hugo Carvalho <hugokarvalho@hotmail.com>
|
||||||
|
|
||||||
|
* Swedish translation
|
||||||
|
Daniel Nylander <po@danielnylander.se>
|
||||||
|
|
||||||
|
* Swedish documentation translation
|
||||||
|
Daniel Nylander <po@danielnylander.se>
|
||||||
|
|
||||||
* Ports & Building:
|
* Ports & Building:
|
||||||
-----------------
|
-----------------
|
||||||
+ Expose SDL2_gfx to Magic Tool plugins
|
+ Expose SDL2_gfx to Magic Tool plugins
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,8 @@ genom de bibliotek som den använder.
|
||||||
hittas exporterar Rita med Tux helt enkelt ritningar och GIF-filer till
|
hittas exporterar Rita med Tux helt enkelt ritningar och GIF-filer till
|
||||||
"$HOME".
|
"$HOME".
|
||||||
|
|
||||||
Tux Paint also uses this to find FontConfig configuration files; see below.
|
Rita med Tux använder också detta för att hitta
|
||||||
|
FontConfig-konfigurationsfiler; se nedan.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -107,8 +108,8 @@ för användare av Rita med Tux.
|
||||||
|
|
||||||
### Font-related environment variables ###
|
### Font-related environment variables ###
|
||||||
|
|
||||||
Tux Paint uses FontConfig (via Pango, in turn via SDL_Pango) to find fonts that
|
Rita med Tux använder FontConfig (via Pango, i sin tur via SDL_Pango) för att
|
||||||
may be used by the "Text" and "Label" tools.
|
hitta teckensnitt som kan användas av verktygen "Text" och "Etikett".
|
||||||
|
|
||||||
→ FONTCONFIG_PATH ←
|
→ FONTCONFIG_PATH ←
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -596,30 +596,30 @@ och/eller kursiv stil och ändra storleken.
|
||||||
|
|
||||||
### System Fonts ###
|
### System Fonts ###
|
||||||
|
|
||||||
Tux Paint checks a number of standard Operating System locations for fonts that
|
Rita med Tux kontrollerar ett antal standardplatser i operativsystemet för
|
||||||
the 'Text' and 'Label' tools might be able to use (unless the "--nosysfonts"
|
teckensnitt som verktygen "Text" och "Label" kan använda (om inte alternativet
|
||||||
option is set). The locations vary, depending on operating system.
|
"--nosysfonts" är inställt). Platserna varierar beroende på operativsystem.
|
||||||
|
|
||||||
* Windows
|
* Windows
|
||||||
+ The location specified by the "Fonts" option of the "Software\Microsoft
|
+ Den plats som anges av alternativet "Fonts" i "Software\Microsoft\
|
||||||
\Windows\CurrentVersion\Explorer\Shell Folders" Windows Registry key.
|
Windows\CurrentVersion\Explorer\Shell Folders" Windows registernyckel.
|
||||||
+ If the above fails, then "C:\WINDOWS\FONTS".
|
+ If the above fails, then "C:\WINDOWS\FONTS".
|
||||||
+ The location specified by the "Local AppData" option of the "Software\
|
+ Den plats som anges av alternativet "Local AppData" i "Software\
|
||||||
Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" Windows
|
Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" Windows
|
||||||
Registry key. The path "\Microsoft\Windows\Fonts" is appended to that
|
registernyckel. Sökvägen "\Microsoft\Windows\Fonts" läggs till den
|
||||||
location.
|
platsen.
|
||||||
* macOS
|
* macOS
|
||||||
+ /System/Library/Fonts
|
+ /System/Library/Fonts
|
||||||
+ /Library/Fonts
|
+ /Library/Fonts
|
||||||
+ /usr/share/fonts
|
+ /usr/share/fonts
|
||||||
+ /usr/X11R6/lib/X11/fonts
|
+ /usr/X11R6/lib/X11/fonts
|
||||||
+ The "Library/Fonts" folder in the user's home folder.
|
+ Mappen "Library/Fonts" i användarens hemmapp.
|
||||||
* Android
|
* Android
|
||||||
+ /system/fonts
|
+ /system/fonts
|
||||||
* Haiku
|
* Haiku
|
||||||
|
|
||||||
The locations found by asking Haiku's "Storage Kit" to find the directories
|
De platser som hittades genom att be Haikus "Storage Kit" att hitta
|
||||||
on the "/boot" volume for:
|
katalogerna på volymen"/boot" för:
|
||||||
+ B_SYSTEM_FONTS_DIRECTORY
|
+ B_SYSTEM_FONTS_DIRECTORY
|
||||||
+ B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY
|
+ B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY
|
||||||
+ B_USER_FONTS_DIRECTORY
|
+ B_USER_FONTS_DIRECTORY
|
||||||
|
|
@ -638,24 +638,24 @@ option is set). The locations vary, depending on operating system.
|
||||||
|
|
||||||
### FontConfig ###
|
### FontConfig ###
|
||||||
|
|
||||||
Tux Paint utilizes FontConfig to find additional system-wide and user-specific
|
Rita med Tux använder FontConfig för att hitta ytterligare systemomfattande och
|
||||||
fonts that the 'Text' and 'Label' tools might be able to use (unless the
|
användarspecifika teckensnitt som verktygen 'Text' och 'Etikett' kan använda
|
||||||
"--nosysfonts" option is set). It does this by looking for FontConfig
|
(om inte alternativet "--nosysfonts" är inställt). Detta görs genom att leta
|
||||||
configuration files ("fonts.conf") in various locations.
|
efter FontConfig konfigurationsfiler ("fonts.conf") på olika platser.
|
||||||
|
|
||||||
* Windows
|
* Windows
|
||||||
+ The "etc/fonts/fonts.conf" file included with Tux Paint.
|
+ Filen "etc/fonts/fonts.conf" som medföljer Rita med Tux.
|
||||||
* macOS
|
* macOS
|
||||||
+ The path specified by the "FONTCONFIG_PATH" environment variable, if
|
+ Den sökväg som anges av miljövariabeln "FONTCONFIG_PATH", om den är
|
||||||
set.
|
inställd.
|
||||||
* Haiku
|
* Haiku
|
||||||
+ /boot/system/settings/fonts/fonts.conf
|
+ /boot/system/settings/fonts/fonts.conf
|
||||||
* Linux/etc.
|
* Linux/etc.
|
||||||
+ The path specified by the "FONTCONFIG_PATH" environment variable, if
|
+ Den sökväg som anges av miljövariabeln "FONTCONFIG_PATH", om den är
|
||||||
set.
|
inställd.
|
||||||
+ If the above fails, then "/etc/fonts/fonts.conf".
|
+ If the above fails, then "/etc/fonts/fonts.conf".
|
||||||
+ The path specified by the "XDG_CONFIG_HOME" environment variable, if
|
+ Den sökväg som anges av miljövariabeln "XDG_CONFIG_HOME", om den är
|
||||||
set. There, it looks for the file "fontconfig/fonts.conf".
|
inställd. Där letar den efter filen "fontconfig/fonts.conf".
|
||||||
+ If the above fails, then "$HOME/.config/fontconfig/fonts.conf".
|
+ If the above fails, then "$HOME/.config/fontconfig/fonts.conf".
|
||||||
|
|
||||||
Each FontConfig configuration file ("fonts.conf") is examined for "<dir>" tags
|
Each FontConfig configuration file ("fonts.conf") is examined for "<dir>" tags
|
||||||
|
|
@ -664,19 +664,19 @@ scans them and loads the fonts. If a "prefix" attribute is included in the tag,
|
||||||
Tux Paint prefixes the path accordingly.
|
Tux Paint prefixes the path accordingly.
|
||||||
|
|
||||||
→ xdg ←
|
→ xdg ←
|
||||||
The directory path specified is considered to be relative to the user's
|
Den angivna katalogsökvägen anses vara relativ i förhållande till
|
||||||
local data path, specified by the "XDG_DATA_HOME" environment variable. If
|
användarens lokala datasökväg, som anges av miljövariabeln "XDG_DATA_HOME".
|
||||||
not set, then ".local/share" under the path specified by the "HOME"
|
Om den inte anges kommer ".local/share" under den sökväg som anges av
|
||||||
environment variable will be used, if it exists.
|
miljövariabeln "HOME" att användas, om den finns.
|
||||||
|
|
||||||
→ relative ←
|
→ relative ←
|
||||||
The directory path specified is considered to be relative to the
|
Den angivna katalogsökvägen anses vara relativ i förhållande till själva
|
||||||
configuration file itself.
|
konfigurationsfilen.
|
||||||
|
|
||||||
→ default, cwd, or no "prefix" attribute specified ←
|
→ default, cwd, or no "prefix" attribute specified ←
|
||||||
The directory path specified is considered to be relative to the current
|
Den angivna katalogsökvägen anses vara relativ till den aktuella
|
||||||
working directory (where Tux Paint is running), unless a root path is
|
arbetskatalogen (där Rita med Tux körs), såvida inte en rotsökväg anges i
|
||||||
included at the start (e.g., "/", "C:\\", etc.)
|
början (t.ex. "/", "C:\\" etc.)
|
||||||
|
|
||||||
|
|
||||||
"Startbilder"
|
"Startbilder"
|
||||||
|
|
@ -709,9 +709,9 @@ separat bakgrundsbild som en del av en "startbild". Överlägget fungerar på
|
||||||
samma sätt: det kan inte ritas över, raderas eller påverkas av
|
samma sätt: det kan inte ritas över, raderas eller påverkas av
|
||||||
"Magic"-verktygen. Det kan däremot bakgrunden!
|
"Magic"-verktygen. Det kan däremot bakgrunden!
|
||||||
|
|
||||||
När verktyget "Eraser" används på en bild som bygger på den här typen av bild
|
När verktyget "Eraser" används på en bild som bygger på den här typen av
|
||||||
"start, återgår den delen av duken till den ursprungliga bakgrundsbilden från
|
"start"-bild, återgår den delen av duken till den ursprungliga bakgrundsbilden
|
||||||
bild "start i stället för att bli enfärgad, t.ex. vit.
|
från "start"-bild i stället för att bli enfärgad, t.ex. vit.
|
||||||
|
|
||||||
Genom att skapa både ett överlägg och en bakgrund kan du skapa en "starter" som
|
Genom att skapa både ett överlägg och en bakgrund kan du skapa en "starter" som
|
||||||
simulerar djup. Tänk dig en bakgrund som visar havet och en overlay som är en
|
simulerar djup. Tänk dig en bakgrund som visar havet och en overlay som är en
|
||||||
|
|
@ -724,21 +724,21 @@ transparens) och spara den med samma filnamn, men med "-back" (förkortning för
|
||||||
"bakgrund") som tillägg till namnet. (t.ex. "start-back.png" skulle vara den
|
"bakgrund") som tillägg till namnet. (t.ex. "start-back.png" skulle vara den
|
||||||
bakgrundsbild som motsvarar överlägget eller förgrunden)
|
bakgrundsbild som motsvarar överlägget eller förgrunden)
|
||||||
|
|
||||||
För bästa resultat bör "start" bilder vara minst lika stor som Rita med Tuxs
|
För bästa resultat bör "start"-bilder vara minst lika stor som Rita med Tuxs
|
||||||
ritduk. (Se avsnittet "Ladda andra bilder i Rita med Tux" i Rita med Tuxs
|
ritduk. (Se avsnittet "Ladda andra bilder i Rita med Tux" i Rita med Tuxs
|
||||||
huvuddokumentation (README) för detaljer om storlek) Om de inte är det kommer
|
huvuddokumentation (README) för detaljer om storlek) Om de inte är det kommer
|
||||||
de att sträckas ut eller skalas. Detta görs utan att påverka formen
|
de att sträckas ut eller skalas. Detta görs utan att påverka formen
|
||||||
("bildförhållandet"), men kan dock ge upphov till viss utslätning av kanterna.
|
("bildförhållandet"), men kan dock ge upphov till viss utslätning av kanterna.
|
||||||
|
|
||||||
Placera dem i katalogen "starters". När dialogrutan "New" öppnas i Rita med Tux
|
Placera dem i katalogen "starters". När dialogrutan "New" öppnas i Rita med Tux
|
||||||
kommer "start" bilder att visas i den skärm som visas, efter de olika
|
kommer "start"-bilder att visas i den skärm som visas, efter de olika
|
||||||
valmöjligheterna för enfärg.
|
valmöjligheterna för enfärg.
|
||||||
|
|
||||||
💡 Obs: "Startbilder" "bifogas" till sparade bilder via en liten textfil som har
|
💡 Obs: "Startbilder" "bifogas" till sparade bilder via en liten textfil som har
|
||||||
samma namn som den sparade filen, men med ".dat" som tillägg. Detta gör att den
|
samma namn som den sparade filen, men med ".dat" som tillägg. Detta gör att den
|
||||||
kan fortsätta att påverka teckningen även efter att Rita med Tux har avslutats,
|
kan fortsätta att påverka teckningen även efter att Rita med Tux har avslutats,
|
||||||
eller en annan bild har laddats eller en ny bild har skapats. (Med andra ord,
|
eller en annan bild har laddats eller en ny bild har skapats. (Med andra ord,
|
||||||
om du baserar en teckning på en bild "start, kommer den alltid att påverkas av
|
om du baserar en teckning på en "start"-bild, kommer den alltid att påverkas av
|
||||||
den)
|
den)
|
||||||
|
|
||||||
### Startalternativ ###
|
### Startalternativ ###
|
||||||
|
|
|
||||||
|
|
@ -1,55 +1,55 @@
|
||||||
Tux Paint
|
Tux Paint
|
||||||
version 0.9.36
|
version 0.9.36
|
||||||
|
|
||||||
### Magic Tool Plugin API Documentation ###
|
### Dokumentation för tillägget Magi-verktygets API ###
|
||||||
|
|
||||||
Copyright © 2007-2025 av olika bidragsgivare; se AUTHORS.txt.
|
Copyright © 2007-2025 av olika bidragsgivare; se AUTHORS.txt.
|
||||||
https://tuxpaint.org/
|
https://tuxpaint.org/
|
||||||
|
|
||||||
januari 12, 2025
|
januari 12, 2025
|
||||||
|
|
||||||
+-----------------------------------------------------+
|
+------------------------------------------------------+
|
||||||
| Innehåll |
|
| Innehåll |
|
||||||
|-----------------------------------------------------|
|
|------------------------------------------------------|
|
||||||
| * Förutsättningar |
|
| * Förutsättningar |
|
||||||
| * Interfaces |
|
| * Gränssnitt |
|
||||||
| + plugin-funktioner för "Magic"-verktyget |
|
| + tilläggsfunktioner för "Magi"-verktyget |
|
||||||
| o Vanliga argument till plugin-funktioner |
|
| o Vanliga argument till tilläggsfunktioner |
|
||||||
| o Nödvändiga plugin-funktioner |
|
| o Nödvändiga tilläggsfunktioner |
|
||||||
| # Plugin "hushållning" funktioner |
|
| # Tilläggsfunktioner för "hushållning" |
|
||||||
| # Plugin-händelsefunktioner |
|
| # Händelsefunktioner för tillägg |
|
||||||
| + Tux Paint Functions and Data |
|
| + Tux Paint Funktioner och data |
|
||||||
| o Pixelmanipulationer |
|
| o Pixelmanipulationer |
|
||||||
| o Hjälpfunktioner |
|
| o Hjälpfunktioner |
|
||||||
| o Information |
|
| o Information |
|
||||||
| o Sound Functions |
|
| o Ljudfunktioner |
|
||||||
| o Tux Paint System Calls |
|
| o Systemanrop för Tux Paint |
|
||||||
| o Färgkonverteringar |
|
| o Färgkonverteringar |
|
||||||
| + Hjälpmakron i "tp_magic_api.h" |
|
| + Hjälpmakron i "tp_magic_api.h" |
|
||||||
| + Constant Definitions in "tp_magic_api.h" |
|
| + Konstantdefinitioner i "tp_magic_api.h" |
|
||||||
| * Compiling |
|
| * Kompilering |
|
||||||
| + Linux and other Unix-like Platforms |
|
| + Linux och andra Unix-liknande plattformar |
|
||||||
| + Fönster |
|
| + Fönster |
|
||||||
| + macOS |
|
| + macOS |
|
||||||
| * Installing |
|
| * Installering |
|
||||||
| + Linux and other Unix-like Platforms |
|
| + Linux och andra Unix-liknande plattformar |
|
||||||
| + Fönster |
|
| + Fönster |
|
||||||
| + macOS |
|
| + macOS |
|
||||||
| * Skapa plugins med flera effekter |
|
| * Skapa tillägg med flera effekter |
|
||||||
| * Example Code |
|
| * Exempelkod |
|
||||||
| * Få hjälp |
|
| * Få hjälp |
|
||||||
| * Ordlista |
|
| * Ordlista |
|
||||||
+-----------------------------------------------------+
|
+------------------------------------------------------+
|
||||||
|
|
||||||
Översikt
|
Översikt
|
||||||
|
|
||||||
Rita med Tux's "Magic"-verktyg kommer som en uppsättning "plugins" som laddas
|
Rita med Tux "Magi"-verktyg kommer som en uppsättning "tillägg" som laddas när
|
||||||
när Rita med Tux startar.
|
Rita med Tux startar.
|
||||||
|
|
||||||
Denna uppdelning möjliggör en snabbare utveckling av "magiska" verktyg och gör
|
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
|
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
|
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)
|
grafikverktyg, t.ex. GIMP, bör känna till detta tilläggskoncept)
|
||||||
|
|
||||||
Förutsättningar
|
Förutsättningar
|
||||||
|
|
||||||
|
|
@ -59,22 +59,22 @@ DirectMedia Layer ("libSDL", eller bara "SDL"; finns på https://www.libsdl.org
|
||||||
kompilerar C-baserade program. Det rekommenderas starkt att man känner till SDL
|
kompilerar C-baserade program. Det rekommenderas starkt att man känner till SDL
|
||||||
API, men några grundläggande SDL-koncept kommer att behandlas i detta dokument.
|
API, men några grundläggande SDL-koncept kommer att behandlas i detta dokument.
|
||||||
|
|
||||||
Interfaces
|
Gränssnitt
|
||||||
|
|
||||||
De som skapar plugins för "magiska" verktyg för Rita med Tux måste
|
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.
|
tillhandahålla vissa gränssnitt (C-funktioner) som Rita med Tux kan anropa.
|
||||||
|
|
||||||
Rita med Tux använder SDL:s rutiner "SDL_LoadObject()" och "SDL_LoadFunction()"
|
Rita med Tux använder SDL:s rutiner "SDL_LoadObject()" och "SDL_LoadFunction()"
|
||||||
för att ladda plugins (filer med delade objekt, t.ex. ".so"-filer i Linux eller
|
för att ladda tillägg (filer med delade objekt, t.ex. ".so"-filer i Linux eller
|
||||||
".dll"-filer i Windows) och hitta funktionerna i dem.
|
".dll"-filer i Windows) och hitta funktionerna i dem.
|
||||||
|
|
||||||
Rita med Tux tillhandahåller i sin tur ett antal hjälpfunktioner som
|
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
|
tilläggsprogrammet kan (eller ibland måste) använda. Detta exponeras som en
|
||||||
C-struktur (eller"struct") som innehåller pekare till funktioner och andra data
|
C-struktur (eller"struct") som innehåller pekare till funktioner och andra data
|
||||||
i Rita med Tux. En pekare till denna struktur skickas vidare till
|
i Rita med Tux. En pekare till denna struktur skickas vidare till
|
||||||
plugin-funktionerna som ett argument när Rita med Tux anropar dem.
|
plugin-funktionerna som ett argument när Rita med Tux anropar dem.
|
||||||
|
|
||||||
Plugins bör #inkludera C-huvudfilen"tp_magic_api.h", som exponerar
|
Tillägg bör #inkludera C-huvudfilen"tp_magic_api.h", som exponerar
|
||||||
plugin-API:et för verktyget "Magic". När du kör C-kompilatorn för att bygga ett
|
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"tp-magic-config" för att få
|
plugin bör du också använda kommandoradsverktyget"tp-magic-config" för att få
|
||||||
lämpliga kompilatorflaggor (till exempel var kompilatorn kan hitta Rita med
|
lämpliga kompilatorflaggor (till exempel var kompilatorn kan hitta Rita med
|
||||||
|
|
@ -85,19 +85,19 @@ 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
|
eller i vissa fall som en del av ett "Rita med Tux 'Magic' Tool Plugin
|
||||||
Development package".
|
Development package".
|
||||||
|
|
||||||
### plugin-funktioner för "Magic"-verktyget ###
|
### tilläggsfunktioner för "Magi"-verktyget ###
|
||||||
|
|
||||||
plugins för "Magic"-verktyg måste innehålla de funktioner som anges nedan.
|
Tillägg för "Magi"-verktyg måste innehålla de funktioner som anges nedan.
|
||||||
Observera: För att undvika kollisioner i namnrymden måste varje funktionsnamn
|
Observera: 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"
|
börja med det delade objektets filnamn (t.ex. skulle "blur.so" eller "blur.dll"
|
||||||
ha funktioner vars namn börjar med"blur_"). Detta inkluderar privata funktioner
|
ha funktioner vars namn börjar med"blur_"). Detta inkluderar privata funktioner
|
||||||
(sådana som inte används direkt av Rita med Tux), såvida du inte deklarerar dem
|
(sådana som inte används direkt av Rita med Tux), såvida du inte deklarerar dem
|
||||||
som"statiska".
|
som"statiska".
|
||||||
|
|
||||||
## Vanliga argument till plugin-funktioner ##
|
## Vanliga argument till tilläggsfunktioner ##
|
||||||
|
|
||||||
Här följer en beskrivning av de argument som många av funktionerna i ditt
|
Här följer en beskrivning av de argument som många av funktionerna i ditt
|
||||||
plugin måste acceptera.
|
tillägg måste acceptera.
|
||||||
|
|
||||||
→ magic_api * api ←
|
→ magic_api * api ←
|
||||||
|
|
||||||
|
|
@ -106,7 +106,7 @@ plugin måste acceptera.
|
||||||
använda. Innehållet i denna struktur beskrivs nedan..
|
använda. Innehållet i denna struktur beskrivs nedan..
|
||||||
|
|
||||||
Observera: Strukturen magic_api definieras i C-headerfilen"tp_magic_api.h",
|
Observera: Strukturen magic_api definieras i C-headerfilen"tp_magic_api.h",
|
||||||
som du bör inkludera högst upp i ditt plugins C-källfil:
|
som du bör inkludera högst upp i ditt tilläggs C-källfil:
|
||||||
|
|
||||||
#include "tp_magic_api.h"
|
#include "tp_magic_api.h"
|
||||||
|
|
||||||
|
|
@ -153,16 +153,16 @@ plugin måste acceptera.
|
||||||
pekare kommer du åt dess element via"->"(pil) snarare än "." (punkt).
|
pekare kommer du åt dess element via"->"(pil) snarare än "." (punkt).
|
||||||
|
|
||||||
|
|
||||||
## Nödvändiga plugin-funktioner ##
|
## Nödvändiga tilläggsfunktioner ##
|
||||||
|
|
||||||
Ditt insticksprogram måste minst innehålla alla följande funktioner.
|
Ditt insticksprogram måste minst innehålla alla följande funktioner.
|
||||||
|
|
||||||
Observera: Kom ihåg att plugin-programmets funktionsnamn måste föregås av
|
Observera: Kom ihåg att tilläggsprogrammets funktionsnamn måste föregås av
|
||||||
plugin-programmets filnamn. Det vill säga, om ditt plugin heter"zoom.so" (på
|
plugin-programmets filnamn. Det vill säga, om ditt plugin heter"zoom.so" (på
|
||||||
Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja med
|
Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja med
|
||||||
"zoom_" (t.ex. "zoom_get_name(...)").
|
"zoom_" (t.ex. "zoom_get_name(...)").
|
||||||
|
|
||||||
# Plugin "hushållning" funktioner #
|
# Tilläggsfunktioner för "hushållning" #
|
||||||
|
|
||||||
→ Uint32 api_version(void) ←
|
→ Uint32 api_version(void) ←
|
||||||
|
|
||||||
|
|
@ -178,12 +178,13 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
|
|
||||||
→ int init(magic_api * api, Uint8 disabled_features, Uint8 complexity_level) ←
|
→ int init(magic_api * api, Uint8 disabled_features, Uint8 complexity_level) ←
|
||||||
|
|
||||||
Plugin-programmet bör göra alla initialiseringar här. Returnera '1' om
|
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
|
initieringen lyckades, eller '0' om den inte gjorde det (och Rita med Tux
|
||||||
kommer inte att presentera några 'Magic'-verktyg från insticksprogrammet).
|
kommer inte att presentera några 'Magic'-verktyg från insticksprogrammet).
|
||||||
|
|
||||||
Obs: Anropas en gång av Rita med Tux, vid uppstart. Det anropas
|
Obs: Anropas en gång av Rita med Tux, vid uppstart. Det anropas
|
||||||
efter"api_version()", om Rita med Tux anser att ditt plugin är kompatibelt.
|
efter"api_version()", om Rita med Tux anser att ditt tillägg är
|
||||||
|
kompatibelt.
|
||||||
|
|
||||||
Värdet disabled_features innehåller bits som ställts in för alla Rita med
|
Värdet disabled_features 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
|
Tux-funktioner som är relevanta för Magic-verktyg som har inaktiverats i
|
||||||
|
|
@ -196,7 +197,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
eller flera funktioner har inaktiverats. (Till exempel har det magiska
|
eller flera funktioner har inaktiverats. (Till exempel har det magiska
|
||||||
verktyget "Brick" alltid erbjudit två verktygsvarianter: stort och litet.
|
verktyget "Brick" alltid erbjudit två verktygsvarianter: stort och litet.
|
||||||
Med tillägget av storleksfunktionen behövs bara ett verktyg. Men när
|
Med tillägget av storleksfunktionen behövs bara ett verktyg. Men när
|
||||||
storleksalternativet är inaktiverat kan plugin-programmet återgå till att
|
storleksalternativet är inaktiverat kan tilläggsprogrammet återgå till att
|
||||||
tillhandahålla två separata verktyg)
|
tillhandahålla två separata verktyg)
|
||||||
|
|
||||||
Variabeln complexity_level innehåller den "komplexitetsnivå" som Rita med
|
Variabeln complexity_level innehåller den "komplexitetsnivå" som Rita med
|
||||||
|
|
@ -204,7 +205,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
Nivåerna definieras i tp_magic_api.h::
|
Nivåerna definieras i tp_magic_api.h::
|
||||||
o MAGIC_COMPLEXITY_NOVICE (0): Novis (--complexity=novice)
|
o MAGIC_COMPLEXITY_NOVICE (0): Novis (--complexity=novice)
|
||||||
o MAGIC_COMPLEXITY_BEGINNER (1): Nybörjare (--complexity=beginner)
|
o MAGIC_COMPLEXITY_BEGINNER (1): Nybörjare (--complexity=beginner)
|
||||||
o MAGIC_COMPLEXITY_ADVANCED (2): Advanced (default) (--complexity=
|
o MAGIC_COMPLEXITY_ADVANCED (2): Avancerad (standard) (--complexity=
|
||||||
advanced)
|
advanced)
|
||||||
Ditt/dina Magic-verktyg kanske vill reagera olika beroende på användarens
|
Ditt/dina Magic-verktyg kanske vill reagera olika beroende på användarens
|
||||||
kunskapsnivå, antingen genom att förenkla hur varje verktyg fungerar eller
|
kunskapsnivå, antingen genom att förenkla hur varje verktyg fungerar eller
|
||||||
|
|
@ -222,7 +223,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
|
|
||||||
→ int get_tool_count(magic_api * api) ←
|
→ int get_tool_count(magic_api * api) ←
|
||||||
|
|
||||||
Detta ska returnera antalet magiska verktyg som detta plugin
|
Detta ska returnera antalet magiska verktyg som detta tillägg
|
||||||
tillhandahåller till Rita med Tux.
|
tillhandahåller till Rita med Tux.
|
||||||
|
|
||||||
Obs: Anropas en gång av Rita med Tux, vid start. Den anropas efter din"init
|
Obs: Anropas en gång av Rita med Tux, vid start. Den anropas efter din"init
|
||||||
|
|
@ -243,7 +244,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
Du måste returnera ett värde som är en kombination av ett eller flera av de
|
Du måste returnera ett värde som är en kombination av ett eller flera av de
|
||||||
tillgängliga lägena:
|
tillgängliga lägena:
|
||||||
o MODE_PAINT - måla på fri hand (klicka och dra)
|
o MODE_PAINT - måla på fri hand (klicka och dra)
|
||||||
o MODE_FULLSCREEN - applies to full image with one click
|
o MODE_FULLSCREEN - gäller för hela bilden med ett klick
|
||||||
o MODE_PAINT_WITH_PREVIEW - frihandsmålning, med förhandsgranskning
|
o MODE_PAINT_WITH_PREVIEW - frihandsmålning, med förhandsgranskning
|
||||||
(klicka och dra)
|
(klicka och dra)
|
||||||
o MODE_ONECLICK - gäller för ett område runt musen, med ett klick
|
o MODE_ONECLICK - gäller för ett område runt musen, med ett klick
|
||||||
|
|
@ -251,7 +252,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
returnera"MODE_PAINT". Om användaren kan göra båda, returnera"MODE_PAINT |
|
returnera"MODE_PAINT". Om användaren kan göra båda, returnera"MODE_PAINT |
|
||||||
MODE_FULLSCREEN" för att tala om för Rita med Tux att den kan göra båda.
|
MODE_FULLSCREEN" för att tala om för Rita med Tux att den kan göra båda.
|
||||||
|
|
||||||
Observera: Anropas en gång för varje Magic-verktyg som ditt plugin påstår
|
Observera: Anropas en gång för varje Magic-verktyg som ditt tillägg påstår
|
||||||
sig innehålla (genom ditt"get_tool_count()").
|
sig innehålla (genom ditt"get_tool_count()").
|
||||||
|
|
||||||
Obs: Tillagd till Rita med Tux 0.9.21; Magic API-version 0x00000002.
|
Obs: Tillagd till Rita med Tux 0.9.21; Magic API-version 0x00000002.
|
||||||
|
|
@ -266,7 +267,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
Rita med Tux kommer att free() strängen vid avslutning, så du bör linda in
|
Rita med Tux kommer att free() strängen vid avslutning, så du bör linda in
|
||||||
den i ett C strdup() -anrop.
|
den i ett C strdup() -anrop.
|
||||||
|
|
||||||
Observera: Anropas en gång för varje Magic-verktyg som ditt plugin påstår
|
Observera: Anropas en gång för varje Magic-verktyg som ditt tillägg påstår
|
||||||
sig innehålla (genom ditt"get_tool_count()").
|
sig innehålla (genom ditt"get_tool_count()").
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -291,7 +292,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
o MAGIC_TYPE_ARTISTIC — Specialverktyg för konstnärliga ändamål, t.ex.
|
o MAGIC_TYPE_ARTISTIC — Specialverktyg för konstnärliga ändamål, t.ex.
|
||||||
Flower, String-verktygen och Rainbow-arc-ritverktygen.
|
Flower, String-verktygen och Rainbow-arc-ritverktygen.
|
||||||
|
|
||||||
Observera: Anropas en gång för varje Magic-verktyg som ditt plugin påstår
|
Observera: Anropas en gång för varje Magic-verktyg som ditt tillägg påstår
|
||||||
sig innehålla (genom ditt"get_tool_count()").
|
sig innehålla (genom ditt"get_tool_count()").
|
||||||
|
|
||||||
Obs: Tillagd till Rita med Tux 0.9.27; Magic API-version 0x00000005.
|
Obs: Tillagd till Rita med Tux 0.9.27; Magic API-version 0x00000005.
|
||||||
|
|
@ -307,7 +308,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
Rita med Tux kommer att frigöra ("SDL_FreeSurface()") ytan när den
|
Rita med Tux kommer att frigöra ("SDL_FreeSurface()") ytan när den
|
||||||
avslutas.
|
avslutas.
|
||||||
|
|
||||||
Observera: Anropas en gång för varje Magic-verktyg som ditt plugin påstår
|
Observera: Anropas en gång för varje Magic-verktyg som ditt tillägg påstår
|
||||||
sig innehålla (genom ditt"get_tool_count()").
|
sig innehålla (genom ditt"get_tool_count()").
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -321,14 +322,15 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
Rita med Tux kommer att free() strängen vid avslutning, så du bör linda in
|
Rita med Tux kommer att free() strängen vid avslutning, så du bör linda in
|
||||||
den i ett C strdup() -anrop.
|
den i ett C strdup() -anrop.
|
||||||
|
|
||||||
Obs: För varje Magic-verktyg som ditt plugin påstår sig innehålla
|
Obs: För varje Magic-verktyg som ditt tillägg påstår sig innehålla
|
||||||
(rapporterat av din "get_tool_count()"-funktion), kommer denna funktion att
|
(rapporterat av din "get_tool_count()"-funktion), kommer denna funktion att
|
||||||
anropas för varje läge som verktyget påstår sig stödja (rapporterat av din
|
anropas för varje läge som verktyget påstår sig stödja (rapporterat av din
|
||||||
"modes()"-funktion).
|
"modes()"-funktion).
|
||||||
|
|
||||||
Med andra ord, om ditt plugin innehåller två verktyg, ett som bara fungerar
|
Med andra ord, om ditt tillägg innehåller två verktyg, ett som bara
|
||||||
i färgläge och det andra som fungerar i både färgläge och fullbildsläge,
|
fungerar i färgläge och det andra som fungerar i både färgläge och
|
||||||
kommer ditt plugins"get_description()" att anropas tre gånger.
|
helbildsläge, kommer ditt tilläggs "get_description()" att anropas tre
|
||||||
|
gånger.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -337,7 +339,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
Returnerar en "1" om "Magic"-verktyget accepterar färger (paletten "Colors"
|
Returnerar en "1" om "Magic"-verktyget accepterar färger (paletten "Colors"
|
||||||
i Rita med Tux kommer att vara tillgänglig), eller "0" om inte.
|
i Rita med Tux kommer att vara tillgänglig), eller "0" om inte.
|
||||||
|
|
||||||
Observera: Anropas en gång för varje Magic-verktyg som ditt plugin påstår
|
Observera: Anropas en gång för varje Magic-verktyg som ditt tillägg påstår
|
||||||
sig innehålla (genom ditt"get_tool_count()").
|
sig innehålla (genom ditt"get_tool_count()").
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -349,7 +351,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
om 'Magic'-verktyget inte ska erbjuda storleksalternativ. Att returnera '1'
|
om 'Magic'-verktyget inte ska erbjuda storleksalternativ. Att returnera '1'
|
||||||
är samma sak som att returnera '0'.
|
är samma sak som att returnera '0'.
|
||||||
|
|
||||||
Obs: För varje Magic-verktyg som ditt plugin påstår sig innehålla
|
Obs: För varje Magic-verktyg som ditt tillägg påstår sig innehålla
|
||||||
(rapporterat av din "get_tool_count()"-funktion), kommer denna funktion att
|
(rapporterat av din "get_tool_count()"-funktion), kommer denna funktion att
|
||||||
anropas för varje läge som verktyget påstår sig stödja (rapporterat av din
|
anropas för varje läge som verktyget påstår sig stödja (rapporterat av din
|
||||||
"modes()"-funktion).
|
"modes()"-funktion).
|
||||||
|
|
@ -367,7 +369,7 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
storlek som Rita med Tux begär. Returnera ett tal mellan '1' och det belopp
|
storlek som Rita med Tux begär. Returnera ett tal mellan '1' och det belopp
|
||||||
som du returnerade i accepted_sizes().
|
som du returnerade i accepted_sizes().
|
||||||
|
|
||||||
Obs: För varje Magic-verktyg som ditt plugin påstår sig innehålla
|
Obs: För varje Magic-verktyg som ditt tillägg påstår sig innehålla
|
||||||
(rapporterat av din "get_tool_count()"-funktion), kommer denna funktion att
|
(rapporterat av din "get_tool_count()"-funktion), kommer denna funktion att
|
||||||
anropas för varje läge som verktyget påstår sig stödja (rapporterat av din
|
anropas för varje läge som verktyget påstår sig stödja (rapporterat av din
|
||||||
"modes()"-funktion).
|
"modes()"-funktion).
|
||||||
|
|
@ -378,24 +380,24 @@ Linux) eller "zoom.dll" (på Windows), måste namnen på dina funktioner börja
|
||||||
|
|
||||||
→ void shutdown(magic_api * api) ←
|
→ void shutdown(magic_api * api) ←
|
||||||
|
|
||||||
Plugin-programmet bör göra all upprensning här. Om du har allokerat något
|
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 init(), till
|
minne eller använt SDL_Mixer för att ladda några ljud under init(), till
|
||||||
exempel, bör du frigöra( ) det allokerade minnet och Mix_FreeChunk() ljuden
|
exempel, bör du frigöra( ) det allokerade minnet och Mix_FreeChunk() ljuden
|
||||||
här.
|
här.
|
||||||
|
|
||||||
Note: This function is called once, when Tux Paint exits.
|
Observera: Denna funktion anropas en gång när Rita med Tux avslutas.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Plugin-händelsefunktioner #
|
# Händelsefunktioner för tillägg #
|
||||||
|
|
||||||
→ void switchin(magic_api * api, int which, int mode, SDL_Surface * snapshot,
|
→ void switchin(magic_api * api, int which, int mode, SDL_Surface * snapshot,
|
||||||
SDL_Surface * canvas)
|
SDL_Surface * canvas)
|
||||||
void switchout(magic_api * api, int which, int mode, SDL_Surface * snapshot,
|
void switchout(magic_api * api, int which, int mode, SDL_Surface * snapshot,
|
||||||
SDL_Surface * canvas) ←
|
SDL_Surface * canvas) ←
|
||||||
|
|
||||||
switchin() anropas när ett av plugin-programmets magiska verktyg blir
|
switchin() anropas när ett av tilläggsprogrammets magiska verktyg blir
|
||||||
aktivt, och switchout() anropas när ett blir inaktivt. Detta kan bero på
|
aktivt, och switchout() anropas när ett blir inaktivt. Detta kan bero på
|
||||||
att användaren just har klickat på ett specifikt magiskt verktyg (det
|
att användaren just har klickat på ett specifikt magiskt verktyg (det
|
||||||
aktuella verktyget kopplas ut och ett nytt kopplas in).
|
aktuella verktyget kopplas ut och ett nytt kopplas in).
|
||||||
|
|
@ -434,7 +436,7 @@ SDL_Surface * canvas) ←
|
||||||
|
|
||||||
Rita med Tux anropar denna funktion för att informera insticksprogrammet om
|
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".
|
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
|
(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
|
accepterar färger blir aktivt, och när användaren väljer en ny färg medan
|
||||||
ett sådant verktyg är aktivt)
|
ett sådant verktyg är aktivt)
|
||||||
|
|
||||||
|
|
@ -454,8 +456,9 @@ SDL_Surface * last, Uint8 size, SDL_Rect * update_rect) ←
|
||||||
|
|
||||||
Rita med Tux anropar denna funktion för att informera insticksprogrammet om
|
Rita med Tux anropar denna funktion för att informera insticksprogrammet om
|
||||||
det valda storleksalternativet för "Magic"-verktyget. (Den anropas när ett
|
det valda storleksalternativet för "Magic"-verktyget. (Den anropas när ett
|
||||||
av plugin-programmets magiska verktyg som accepterar storlekar blir aktivt,
|
av tilläggsprogrammets magiska verktyg som accepterar storlekar blir
|
||||||
och när användaren väljer en ny storlek medan ett sådant verktyg är aktivt)
|
aktivt, och när användaren väljer en ny storlek medan ett sådant verktyg är
|
||||||
|
aktivt)
|
||||||
|
|
||||||
I allmänhet kommer Magic-verktygen inte att ändra duken på något sätt när
|
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.
|
de får en uppdaterad storlek, men det är möjligt.
|
||||||
|
|
@ -467,12 +470,12 @@ SDL_Surface * last, Uint8 size, SDL_Rect * update_rect) ←
|
||||||
→ void click(magic_api * api, int which, int mode, SDL_Surface * snapshot,
|
→ void click(magic_api * api, int which, int mode, SDL_Surface * snapshot,
|
||||||
SDL_Surface * canvas, int x, int y, SDL_Rect * update_rect) ←
|
SDL_Surface * canvas, int x, int y, SDL_Rect * update_rect) ←
|
||||||
|
|
||||||
Plugin-programmet ska tillämpa lämpligt "Magic"-verktyg på"canvas"-ytan.
|
Tilläggsprogrammet ska tillämpa lämpligt "Magic"-verktyg på"canvas"-ytan.
|
||||||
(x,y)-koordinaterna är var musen befann sig (inom canvasen) när musknappen
|
(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
|
klickades, och du får veta vilket "läge" ditt verktyg är i
|
||||||
(dvs."MODE_PAINT" eller"MODE_FULLSCREEN").
|
(dvs."MODE_PAINT" eller"MODE_FULLSCREEN").
|
||||||
|
|
||||||
Plugin-programmet bör rapportera tillbaka vilken del av duken som
|
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åverkades genom att fylla i elementen (x,y) och (w,h) i"update_rect".
|
||||||
|
|
||||||
Innehållet i teckningsytan omedelbart före musklicket lagras
|
Innehållet i teckningsytan omedelbart före musklicket lagras
|
||||||
|
|
@ -483,21 +486,21 @@ SDL_Surface * canvas, int x, int y, SDL_Rect * update_rect) ←
|
||||||
→ void drag(magic_api * api, int which, SDL_Surface * snapshot, SDL_Surface *
|
→ 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) ←
|
canvas, int ox, int oy, int x, int y, SDL_Rect * update_rect) ←
|
||||||
|
|
||||||
Plugin-programmet bör tillämpa lämpligt "Magic"-verktyg på"canvas"-ytan.
|
Tilläggsprogrammet bör tillämpa lämpligt "Magic"-verktyg på"canvas"-ytan.
|
||||||
Koordinaterna (ox,oy) och (x,y) är musens position i början och slutet av
|
Koordinaterna (ox,oy) och (x,y) är musens position i början och slutet av
|
||||||
strecket.
|
strecket.
|
||||||
|
|
||||||
Plugins som låter användaren "rita" effekter på duken använder vanligtvis
|
Tillägg som låter användaren "rita" effekter på duken använder vanligtvis
|
||||||
Rita med Tux's"line()" 'Magic' tool plugin-hjälpfunktion för att beräkna
|
Rita med Tux "line()" 'Magic' tool tilläggshjälpfunktion för att beräkna
|
||||||
punkterna på linjen mellan (ox,oy) och (x,y), och anropar en annan funktion
|
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"Rita med
|
inom pluginet för att tillämpa effekten vid varje punkt. (Se"Rita med
|
||||||
Tux-funktioner och data" nedan).
|
Tux-funktioner och data" nedan).
|
||||||
|
|
||||||
Plugin-programmet bör rapportera tillbaka vilken del av duken som
|
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åverkades genom att fylla i elementen (x,y) och (w,h) i"update_rect".
|
||||||
|
|
||||||
Obs: Innehållet i ritningsytan omedelbart före musklicket förblir detsamma
|
Obs: Innehållet i ritningsytan omedelbart före musklicket förblir detsamma
|
||||||
som det var (när plugin-programmets "click()"-funktion anropades) och är
|
som det var (när tilläggsprogrammets "click()"-funktion anropades) och är
|
||||||
fortfarande tillgängligt i"snapshot"-ytan.
|
fortfarande tillgängligt i"snapshot"-ytan.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -505,23 +508,23 @@ canvas, int ox, int oy, int x, int y, SDL_Rect * update_rect) ←
|
||||||
→ void release(magic_api * api, int which, SDL_Surface * snapshot, SDL_Surface
|
→ void release(magic_api * api, int which, SDL_Surface * snapshot, SDL_Surface
|
||||||
* canvas, int x, int y, SDL_Rect * update_rect) ←
|
* canvas, int x, int y, SDL_Rect * update_rect) ←
|
||||||
|
|
||||||
Plugin-programmet bör använda lämpligt "Magic"-verktyg på"canvas"-ytan.
|
Tilläggsprogrammet bör använda lämpligt "Magic"-verktyg på"canvas"-ytan.
|
||||||
(x,y)-koordinaterna är var musen befann sig (inom duken) när musknappen
|
(x,y)-koordinaterna är var musen befann sig (inom duken) när musknappen
|
||||||
släpptes.
|
släpptes.
|
||||||
|
|
||||||
Plugin-programmet bör rapportera tillbaka vilken del av duken som
|
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åverkades genom att fylla i elementen (x,y) och (w,h) i "update_rect".
|
||||||
|
|
||||||
Obs: Innehållet i ritningsytan omedelbart före musklicket förblir detsamma
|
Obs: Innehållet i ritningsytan omedelbart före musklicket förblir detsamma
|
||||||
som det var (när plugin-programmets "click()"-funktion anropades) och är
|
som det var (när tilläggsprogrammets "click()"-funktion anropades) och är
|
||||||
fortfarande tillgängligt i "snapshot"-ytan.
|
fortfarande tillgängligt i "snapshot"-ytan.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Tux Paint Functions and Data ###
|
### Tux Paint Funktioner och data ###
|
||||||
|
|
||||||
Rita med Tux tillhandahåller ett antal hjälpfunktioner som plugins kan komma åt
|
Rita med Tux tillhandahåller ett antal hjälpfunktioner som tillägg kan komma åt
|
||||||
via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
"Obligatoriska plugin-funktioner" ovan.)
|
"Obligatoriska plugin-funktioner" ovan.)
|
||||||
|
|
||||||
|
|
@ -574,17 +577,17 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Den skickar (x,y)-koordinaterna på linjen till "callback"-funktionen,
|
Den skickar (x,y)-koordinaterna på linjen till "callback"-funktionen,
|
||||||
Rita med Tuxs"magic_api"-struktur (som en"void *"-pekare som du måste
|
Rita med Tuxs"magic_api"-struktur (som en"void *"-pekare som du måste
|
||||||
skicka till den), ett "which"-värde som representerar vilket av
|
skicka till den), ett "which"-värde som representerar vilket av
|
||||||
plugin-programmets "Magic"-verktyg som används, och de aktuella och
|
tilläggsprogrammets "Magi"-verktyg som används, och de aktuella och
|
||||||
snapshot-bilderna.
|
snapshot-bilderna.
|
||||||
|
|
||||||
Exempel på prototyp av en callback-funktion som kan skickas till Rita
|
Exempel på prototyp av en callback-funktion som kan skickas till Rita
|
||||||
med Tux's"line()" 'Magic' tool plugin helper-funktion:
|
med Tux "line()" 'Magic' tool plugin helper-funktion:
|
||||||
|
|
||||||
void exampleCallBack(void * ptr_to_api, int which_tool, SDL_Surface
|
void exampleCallBack(void * ptr_to_api, int which_tool, SDL_Surface
|
||||||
* canvas, SDL_Surface * snapshot, int x, int y);
|
* canvas, SDL_Surface * snapshot, int x, int y);
|
||||||
|
|
||||||
Exempel på användning av"line()"-hjälpen (t.ex. inom ett plugins draw()
|
Exempel på användning av"line()"-hjälpen (t.ex. inom ett tilläggs draw
|
||||||
-funktion):
|
() -funktion):
|
||||||
|
|
||||||
api->line((void *) api, which, canvas, snapshot, ox, oy, x, y, 1,
|
api->line((void *) api, which, canvas, snapshot, ox, oy, x, y, 1,
|
||||||
exampleCallBack);
|
exampleCallBack);
|
||||||
|
|
@ -636,7 +639,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
På Linux kan detta till exempel vara"/usr/share/tuxpaint/".
|
På Linux kan detta till exempel vara"/usr/share/tuxpaint/".
|
||||||
|
|
||||||
Magiska verktyg bör innehålla en ikon (se"get_icon()", ovan) och
|
Magiska verktyg bör innehålla en ikon (se"get_icon()", ovan) och
|
||||||
uppmuntras att innehålla ljudeffekter, det är användbart för plugins
|
uppmuntras att innehålla ljudeffekter, det är användbart för tillägg
|
||||||
att veta var sådana saker finns.
|
att veta var sådana saker finns.
|
||||||
|
|
||||||
Vid kompilering och installation av ett insticksprogram bör
|
Vid kompilering och installation av ett insticksprogram bör
|
||||||
|
|
@ -644,7 +647,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
sådana data ska placeras för att den installerade versionen av Rita med
|
sådana data ska placeras för att den installerade versionen av Rita med
|
||||||
Tux ska hitta dem. (Se"Installera" nedan.)
|
Tux ska hitta dem. (Se"Installera" nedan.)
|
||||||
|
|
||||||
Obs: Om ditt plugin är installerat lokalt (t.ex. i din katalog"~
|
Obs: Om ditt tillägg är installerat lokalt (t.ex. i din katalog"~
|
||||||
/.tuxpaint/plugins/"), snarare än globalt (systemövergripande), kommer
|
/.tuxpaint/plugins/"), snarare än globalt (systemövergripande), kommer
|
||||||
värdet"data_directory" att vara annorlunda. (t.ex. "/home/användarnamn/
|
värdet"data_directory" att vara annorlunda. (t.ex. "/home/användarnamn/
|
||||||
.tuxpaint/plugins/data/").
|
.tuxpaint/plugins/data/").
|
||||||
|
|
@ -652,7 +655,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Sound Functions ##
|
## Ljudfunktioner ##
|
||||||
|
|
||||||
→ void playsound(Mix_Chunk * snd, int pan, int dist) ←
|
→ void playsound(Mix_Chunk * snd, int pan, int dist) ←
|
||||||
|
|
||||||
|
|
@ -713,7 +716,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Tux Paint System Calls ##
|
## Systemanrop för Tux Paint ##
|
||||||
|
|
||||||
→ void update_progress_bar(void) ←
|
→ void update_progress_bar(void) ←
|
||||||
Ber Rita med Tux att animera och rita en bildruta i förloppsindikatorn
|
Ber Rita med Tux att animera och rita en bildruta i förloppsindikatorn
|
||||||
|
|
@ -827,7 +830,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Constant Definitions in "tp_magic_api.h" ###
|
### Konstantdefinitioner i "tp_magic_api.h" ###
|
||||||
|
|
||||||
Följande är en sammanfattning av de konstantvärden som ställs in (via"#
|
Följande är en sammanfattning av de konstantvärden som ställs in (via"#
|
||||||
define") i huvudfilen för verktygs-API:et 'Magic'.
|
define") i huvudfilen för verktygs-API:et 'Magic'.
|
||||||
|
|
@ -839,11 +842,11 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
Det bör refereras till av ditt magiska verktygs"api_version()
|
Det bör refereras till av ditt magiska verktygs"api_version()
|
||||||
"-funktion, för att informera den löpande kopian av Rita med Tux om
|
"-funktion, för att informera den löpande kopian av Rita med Tux om
|
||||||
ditt plugin är kompatibelt eller inte.
|
ditt tillägg är kompatibelt eller inte.
|
||||||
|
|
||||||
Obs: Detta versionsnummer motsvarar inte Rita med Tux's eget
|
Obs: Detta versionsnummer motsvarar inte Rita med Tux's eget
|
||||||
versionsnummer (t.ex. "0.9.36"). API:et kommer inte att ändras varje
|
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
|
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
|
som kompilerats för tidigare versioner av Rita med Tux ofta kommer att
|
||||||
köras under nyare versioner.
|
köras under nyare versioner.
|
||||||
|
|
||||||
|
|
@ -855,13 +858,13 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
beskrivs ovan.
|
beskrivs ovan.
|
||||||
|
|
||||||
|
|
||||||
Compiling
|
Kompilering
|
||||||
|
|
||||||
### Linux and other Unix-like Platforms ###
|
### Linux och andra Unix-liknande plattformar ###
|
||||||
|
|
||||||
Använd C-kompilatorns kommandoradsalternativ"-shared" för att generera en
|
Använd C-kompilatorns kommandoradsalternativ"-shared" för att generera en
|
||||||
fil med delade objekt (".so") baserat på C-källkoden för ditt
|
fil med delade objekt (".so") baserat på C-källkoden för ditt
|
||||||
verktygsplugin 'Magic'.
|
verktygstillägget 'Magi'.
|
||||||
|
|
||||||
Använd kommandot"tp-magic-config --cflags", som levereras som en del av
|
Använd kommandot"tp-magic-config --cflags", som levereras som en del av
|
||||||
Rita med Tux - eller i vissa fall som en del av ett "Rita med Tux 'Magic'
|
Rita med Tux - eller i vissa fall som en del av ett "Rita med Tux 'Magic'
|
||||||
|
|
@ -869,7 +872,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
kommandoradsflaggor till din C-kompilator som hjälper den att bygga ditt
|
kommandoradsflaggor till din C-kompilator som hjälper den att bygga ditt
|
||||||
plugin.
|
plugin.
|
||||||
|
|
||||||
## Command-Line Example ##
|
## Exempel på kommandoraden ##
|
||||||
|
|
||||||
Som ett fristående kommando, till exempel med GNU C-kompilatorn och
|
Som ett fristående kommando, till exempel med GNU C-kompilatorn och
|
||||||
BASH-skalet:
|
BASH-skalet:
|
||||||
|
|
@ -916,7 +919,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Observera: Kommandon som listas under ett Makefile-mål ska anges med ett
|
Observera: Kommandon som listas under ett Makefile-mål ska anges med ett
|
||||||
enda tabbtecken.
|
enda tabbtecken.
|
||||||
|
|
||||||
## Advanced Makefile ##
|
## Avancerad Makefile ##
|
||||||
|
|
||||||
En ännu mer generaliserad Makefile kan se ut så här:
|
En ännu mer generaliserad Makefile kan se ut så här:
|
||||||
|
|
||||||
|
|
@ -948,9 +951,9 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
TBD
|
TBD
|
||||||
|
|
||||||
Installing
|
Installering
|
||||||
|
|
||||||
### Linux and other Unix-like Platforms ###
|
### Linux och andra Unix-liknande plattformar ###
|
||||||
|
|
||||||
Använd kommandoradsverktyget"tp-magic-config", som levereras som en del av
|
Använd kommandoradsverktyget"tp-magic-config", som levereras som en del av
|
||||||
Rita med Tux - eller i vissa fall som en del av ett "Rita med Tux 'Magic'
|
Rita med Tux - eller i vissa fall som en del av ett "Rita med Tux 'Magic'
|
||||||
|
|
@ -975,7 +978,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
Obs: Se anmärkningen ovan angående tecknet "`"(grav)..
|
Obs: Se anmärkningen ovan angående tecknet "`"(grav)..
|
||||||
|
|
||||||
## Documentation ##
|
## Dokumentation ##
|
||||||
|
|
||||||
Använd kommandot"tp-magic-config --plugindocprefix" för att bestämma var
|
Använd kommandot"tp-magic-config --plugindocprefix" för att bestämma var
|
||||||
dokumentationen för dina "Magic"-verktyg ska placeras. Det värde som
|
dokumentationen för dina "Magic"-verktyg ska placeras. Det värde som
|
||||||
|
|
@ -1068,8 +1071,8 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Under det finns ett"install"-mål i Makefile. (Påkallas av till exempel"$
|
Under det finns ett"install"-mål i Makefile. (Påkallas av till exempel"$
|
||||||
sudo make install" eller"# make install")
|
sudo make install" eller"# make install")
|
||||||
|
|
||||||
Målet"install" använder"mkdir -p" för att se till att plugin-katalogen
|
Målet"install" använder"mkdir -p" för att se till att tilläggskatalogen
|
||||||
finns, använder sedan"cp" för att kopiera alla plugin (".so")-filer till
|
finns, använder sedan "cp" för att kopiera alla plugin (".so")-filer till
|
||||||
den och anropar"chmod" för att se till att de är läsbara.
|
den och anropar"chmod" för att se till att de är läsbara.
|
||||||
|
|
||||||
Därefter utförs en liknande serie kommandon för att installera ikonfiler
|
Därefter utförs en liknande serie kommandon för att installera ikonfiler
|
||||||
|
|
@ -1078,7 +1081,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
".txt"-filer) i Rita med Tuxs dokumentationskatalog.
|
".txt"-filer) i Rita med Tuxs dokumentationskatalog.
|
||||||
|
|
||||||
Obs: Makefile-exemplet ovan förutsätter att användaren har behörighet att
|
Obs: Makefile-exemplet ovan förutsätter att användaren har behörighet att
|
||||||
installera Rita med Tux-plugins i hela systemet.
|
installera Rita med Tux-tillägg i hela systemet.
|
||||||
|
|
||||||
### Fönster ###
|
### Fönster ###
|
||||||
|
|
||||||
|
|
@ -1088,13 +1091,13 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
TBD
|
TBD
|
||||||
|
|
||||||
Skapa plugins med flera effekter
|
Skapa tillägg med flera effekter
|
||||||
|
|
||||||
Plugins för Rita med Tux kan innehålla mer än en effekt. Om du har flera
|
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
|
effekter som liknar varandra kan det vara vettigt att placera dem i en
|
||||||
plugin-fil för att minska overhead och dela kod.
|
tilläggsfil för att minska overhead och dela kod.
|
||||||
|
|
||||||
Följande förslag kan hjälpa dig att skapa plugins som innehåller flera
|
Följande förslag kan hjälpa dig att skapa tillägg som innehåller flera
|
||||||
effekter:
|
effekter:
|
||||||
o Använd C"enum" för att räkna upp effekterna och räkna dem.
|
o Använd C"enum" för att räkna upp effekterna och räkna dem.
|
||||||
|
|
||||||
|
|
@ -1110,9 +1113,9 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
o Skapa arrayer av längden"NUM_TOOLS" för att innehålla effektspecifika
|
o Skapa arrayer av längden"NUM_TOOLS" för att innehålla effektspecifika
|
||||||
data.
|
data.
|
||||||
|
|
||||||
char * my_plugin_snd_filnamn[NUM_TOOLS] = {
|
char * my_plugin_snd_filenames[NUM_TOOLS] = {
|
||||||
"one.ogg", "another.ogg", "yet_another.ogg" };
|
"one.ogg", "another.ogg", "yet_another.ogg" };
|
||||||
Mix_Chunk * min_plugin_snds[NUM_TOOLS]");
|
Mix_Chunk * my_plugin_snds[NUM_TOOLS]");
|
||||||
|
|
||||||
o Använd en C"for"-loop för att ladda eller skapa effektspecifika data
|
o Använd en C"for"-loop för att ladda eller skapa effektspecifika data
|
||||||
(t.ex. ladda ljudeffekter under din"init()").
|
(t.ex. ladda ljudeffekter under din"init()").
|
||||||
|
|
@ -1122,13 +1125,13 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
for (i = 0; i < NUM_TOOLS; i++)
|
for (i = 0; i < NUM_TOOLS; i++)
|
||||||
{
|
{
|
||||||
/* Becomes, for example, "/usr/share/tuxpaint/sounds/magic/
|
/* Blir till exempel "/usr/share/tuxpaint/sounds/magic/one.ogg"
|
||||||
one.ogg" */
|
*/
|
||||||
|
|
||||||
snprintf(fname, sizeof(fname), "%s/sounds/magic/%s",
|
snprintf(fname, sizeof(fname), "%s/sounds/magic/%s",
|
||||||
api->data_prefix, my_plugin_snd_filnamn[i]);
|
api->data_prefix, my_plugin_snd_filenames[i]);
|
||||||
|
|
||||||
min_plugin_snds[i] = Mix_LoadWAV(fname);
|
my_plugin_snds[i] = Mix_LoadWAV(fname);
|
||||||
}
|
}
|
||||||
|
|
||||||
o På samma sätt kan du göra för att frigöra dem senare (t.ex. frigöra
|
o På samma sätt kan du göra för att frigöra dem senare (t.ex. frigöra
|
||||||
|
|
@ -1137,18 +1140,18 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < NUM_TOOLS; i++)
|
for (i = 0; i < NUM_TOOLS; i++)
|
||||||
Mix_FreeChunk(min_plugin_snds[i]);
|
Mix_FreeChunk(my_plugin_snds[i]);
|
||||||
|
|
||||||
o Använd"which"-värden som skickas till dina funktioner som ett index i
|
o Använd"which"-värden som skickas till dina funktioner som ett index i
|
||||||
dessa matriser (t.ex. för att spela upp lämplig ljudeffekt för ett
|
dessa matriser (t.ex. för att spela upp lämplig ljudeffekt för ett
|
||||||
verktyg).
|
verktyg).
|
||||||
|
|
||||||
Observera: Även om ditt plugin för närvarande bara innehåller en effekt,
|
Observera: Ä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
|
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. ("NUM_TOOLS" kommer helt
|
variant av en effekt med liten ansträngning. ("NUM_TOOLS" kommer helt
|
||||||
enkelt att vara '1', dina arrayer kommer att ha längden '1', etc.)
|
enkelt att vara '1', dina arrayer kommer att ha längden '1', etc.)
|
||||||
|
|
||||||
Example Code
|
Exempelkod
|
||||||
|
|
||||||
The C source file "tp_magic_example.c" contains a complete example of a
|
The C source file "tp_magic_example.c" contains a complete example of a
|
||||||
plugin with multiple simple effects.
|
plugin with multiple simple effects.
|
||||||
|
|
@ -1169,7 +1172,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Se "ampersand"
|
Se "ampersand"
|
||||||
|
|
||||||
→ * ←
|
→ * ←
|
||||||
Se "star"
|
Se "stjärna"
|
||||||
|
|
||||||
→ -> ←
|
→ -> ←
|
||||||
Se "pil"
|
Se "pil"
|
||||||
|
|
@ -1178,7 +1181,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Se "punkt"
|
Se "punkt"
|
||||||
|
|
||||||
→ ` ←
|
→ ` ←
|
||||||
Se "grave"
|
Se "grav"
|
||||||
|
|
||||||
→ alfa ←
|
→ alfa ←
|
||||||
Se "RGBA"
|
Se "RGBA"
|
||||||
|
|
@ -1195,7 +1198,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
för en variabel, dvs. en pekare. (Tänk till exempel på"int i;". Senare
|
för en variabel, dvs. en pekare. (Tänk till exempel på"int i;". Senare
|
||||||
hänvisar"&i" till minnet där "i" är lagrat, inte värdet på "i" i sig;
|
hänvisar"&i" till minnet där "i" är lagrat, inte värdet på "i" i sig;
|
||||||
det är en "pekare till"i"")
|
det är en "pekare till"i"")
|
||||||
Se även: "star"
|
Se även: "stjärna"
|
||||||
|
|
||||||
→ API ←
|
→ API ←
|
||||||
Gränssnitt för applikationsprogrammering. Definitionen har ännu inte
|
Gränssnitt för applikationsprogrammering. Definitionen har ännu inte
|
||||||
|
|
@ -1205,7 +1208,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Ett värde som skickas till en funktion.
|
Ett värde som skickas till en funktion.
|
||||||
|
|
||||||
→ backquote / backtick ←
|
→ backquote / backtick ←
|
||||||
Se "grave"
|
Se "grav"
|
||||||
|
|
||||||
→ BASH ←
|
→ BASH ←
|
||||||
"Bourne Again Shell", ett skal- och kommandospråk för Unix.
|
"Bourne Again Shell", ett skal- och kommandospråk för Unix.
|
||||||
|
|
@ -1258,13 +1261,6 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
vanligtvis börjar på 0 och ökar med ett). (t.ex."enum { ONE, TWO, THREE
|
vanligtvis börjar på 0 och ökar med ett). (t.ex."enum { ONE, TWO, THREE
|
||||||
};"
|
};"
|
||||||
|
|
||||||
→ colorspace ←
|
|
||||||
Definitionen har ännu inte presenterats.
|
|
||||||
See also:
|
|
||||||
@ RGBA
|
|
||||||
@ HSV
|
|
||||||
|
|
||||||
|
|
||||||
→ #define ←
|
→ #define ←
|
||||||
En C-sats som definierar en substitution som kan förekomma senare i
|
En C-sats som definierar en substitution som kan förekomma senare i
|
||||||
koden. Används vanligen för konstanta värden (t.ex. "#define RADIUS
|
koden. Används vanligen för konstanta värden (t.ex. "#define RADIUS
|
||||||
|
|
@ -1286,7 +1282,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Att flytta en mus medan knappen hålls intryckt, eller att flytta ett
|
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
|
finger eller en penna över en skärm eller surfplatta utan att ta bort
|
||||||
den.
|
den.
|
||||||
See also:
|
Se även:
|
||||||
@ klick
|
@ klick
|
||||||
@ utgåva
|
@ utgåva
|
||||||
|
|
||||||
|
|
@ -1294,7 +1290,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ element ←
|
→ element ←
|
||||||
En variabel som lagras inom en C-struktur. (Exempel: elementen"w"
|
En variabel som lagras inom en C-struktur. (Exempel: elementen"w"
|
||||||
och"h" i SDL_Surface lagrar ytans bredd respektive höjd)
|
och"h" i SDL_Surface lagrar ytans bredd respektive höjd)
|
||||||
See also:
|
Se även:
|
||||||
@ C-struktur
|
@ C-struktur
|
||||||
@ punkt
|
@ punkt
|
||||||
@ pil
|
@ pil
|
||||||
|
|
@ -1304,9 +1300,9 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Se "C-uppräkning"
|
Se "C-uppräkning"
|
||||||
|
|
||||||
→ float ←
|
→ float ←
|
||||||
Se "floating point"
|
Se "flyttal"
|
||||||
|
|
||||||
→ floating point ←
|
→ flyttal ←
|
||||||
Definitionen har ännu inte presenterats.
|
Definitionen har ännu inte presenterats.
|
||||||
Se även: "heltal"
|
Se även: "heltal"
|
||||||
|
|
||||||
|
|
@ -1321,9 +1317,16 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
C-funktioner (t.ex. "strdup()").
|
C-funktioner (t.ex. "strdup()").
|
||||||
Se manuskriptet "malloc(3)" man page.
|
Se manuskriptet "malloc(3)" man page.
|
||||||
|
|
||||||
→ function ←
|
→ funktion ←
|
||||||
Se "C-funktion"
|
Se "C-funktion"
|
||||||
|
|
||||||
|
→ färgrymd ←
|
||||||
|
Definitionen har ännu inte presenterats.
|
||||||
|
Se även:
|
||||||
|
@ RGBA
|
||||||
|
@ HSV
|
||||||
|
|
||||||
|
|
||||||
→ gcc ←
|
→ gcc ←
|
||||||
Se "GNU C-kompilator"
|
Se "GNU C-kompilator"
|
||||||
|
|
||||||
|
|
@ -1337,7 +1340,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
länkning av program skrivna i programspråket C.
|
länkning av program skrivna i programspråket C.
|
||||||
Se manuskriptet "gcc(1)" man page.
|
Se manuskriptet "gcc(1)" man page.
|
||||||
|
|
||||||
→ grave ←
|
→ grav ←
|
||||||
Den "`"; används av BASH-skalet för att använda utdata från ett
|
Den "`"; används av BASH-skalet för att använda utdata från ett
|
||||||
kommando som kommandoradsargument för ett annat.
|
kommando som kommandoradsargument för ett annat.
|
||||||
|
|
||||||
|
|
@ -1349,13 +1352,13 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
→ heltal ←
|
→ heltal ←
|
||||||
Definitionen har ännu inte presenterats.
|
Definitionen har ännu inte presenterats.
|
||||||
Se även: "floating point"
|
Se även: "flyttal"
|
||||||
|
|
||||||
→ HSV ←
|
→ HSV ←
|
||||||
Färgton, mättnad och värde.Definitionen har ännu inte presenterats.
|
Färgton, mättnad och värde.Definitionen har ännu inte presenterats.
|
||||||
See also:
|
Se även:
|
||||||
@ RGBA
|
@ RGBA
|
||||||
@ colorspace
|
@ färgrymd
|
||||||
|
|
||||||
|
|
||||||
→ huvudfil ←
|
→ huvudfil ←
|
||||||
|
|
@ -1381,7 +1384,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ klick ←
|
→ klick ←
|
||||||
Att trycka på en knapp på en mus, trycka på en pekskärm eller trycka en
|
Att trycka på en knapp på en mus, trycka på en pekskärm eller trycka en
|
||||||
penna mot en surfplatta.
|
penna mot en surfplatta.
|
||||||
See also:
|
Se även:
|
||||||
@ dra
|
@ dra
|
||||||
@ utgåva
|
@ utgåva
|
||||||
|
|
||||||
|
|
@ -1403,14 +1406,14 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ linjär ←
|
→ linjär ←
|
||||||
Definitionen har ännu inte presenterats.
|
Definitionen har ännu inte presenterats.
|
||||||
|
|
||||||
→ Magic tool ←
|
→ magic_api ←
|
||||||
|
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.
|
||||||
|
|
||||||
|
→ Magiverktyg ←
|
||||||
En av ett antal effekter eller ritverktyg i Rita med Tux, som görs
|
En av ett antal effekter eller ritverktyg i Rita med Tux, som görs
|
||||||
tillgängliga via verktygsknappen "Magic".
|
tillgängliga via verktygsknappen "Magic".
|
||||||
|
|
||||||
→ magic_api ←
|
|
||||||
En C-struktur som skickas vidare till ett plugins funktioner som
|
|
||||||
exponerar data och funktioner i den löpande kopian av Rita med Tux.
|
|
||||||
|
|
||||||
→ make ←
|
→ make ←
|
||||||
Ett verktyg som automatiskt avgör vilka delar av ett större program som
|
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.
|
behöver kompileras om och ger kommandon för att kompilera om dem.
|
||||||
|
|
@ -1441,7 +1444,10 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
En SDL_mixer-funktion som laddar en ljudfil (WAV, Ogg Vorbis, etc.) och
|
En SDL_mixer-funktion som laddar en ljudfil (WAV, Ogg Vorbis, etc.) och
|
||||||
returnerar den som en"Mix_Chunk *".
|
returnerar den som en"Mix_Chunk *".
|
||||||
|
|
||||||
→ namespace ←
|
→ mättnad ←
|
||||||
|
Se "HSV"
|
||||||
|
|
||||||
|
→ namnrymd ←
|
||||||
Definitionen har ännu inte presenterats.
|
Definitionen har ännu inte presenterats.
|
||||||
|
|
||||||
→ nyans ←
|
→ nyans ←
|
||||||
|
|
@ -1465,12 +1471,18 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
grafik i SDL bör osignerade värden användas för RGB-värden, eftersom
|
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
|
varje kanal (röd, grön och blå) kan vara mellan 0 (släckt) och 255
|
||||||
(ljusast).
|
(ljusast).
|
||||||
See also:
|
Se även:
|
||||||
@ Uint8
|
@ Uint8
|
||||||
@ Uint32
|
@ Uint32
|
||||||
@ integer
|
@ integer
|
||||||
|
|
||||||
|
|
||||||
|
→ peka ←
|
||||||
|
Se "klick"
|
||||||
|
|
||||||
|
→ pekare ←
|
||||||
|
Se "C-pekare"
|
||||||
|
|
||||||
→ pil ←
|
→ pil ←
|
||||||
"->". En symbol i C som refererar till ett element inom en pekare till
|
"->". En symbol i C som refererar till ett element inom en pekare till
|
||||||
en struktur.
|
en struktur.
|
||||||
|
|
@ -1478,9 +1490,6 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ .png ←
|
→ .png ←
|
||||||
Se "Portable Network Graphics"
|
Se "Portable Network Graphics"
|
||||||
|
|
||||||
→ pointer ←
|
|
||||||
Se "C-pekare"
|
|
||||||
|
|
||||||
→ Portable Network Graphics ←
|
→ Portable Network Graphics ←
|
||||||
Portable Network Graphics. Ett utbyggbart filformat för förlustfri,
|
Portable Network Graphics. Ett utbyggbart filformat för förlustfri,
|
||||||
portabel och välkomprimerad lagring av rasterbilder. Det är det
|
portabel och välkomprimerad lagring av rasterbilder. Det är det
|
||||||
|
|
@ -1500,7 +1509,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
→ punkt ←
|
→ punkt ←
|
||||||
".". En symbol i C som refererar till ett element inom en struktur.
|
".". En symbol i C som refererar till ett element inom en struktur.
|
||||||
See also:
|
Se även:
|
||||||
@ C-struktur
|
@ C-struktur
|
||||||
@ pil
|
@ pil
|
||||||
|
|
||||||
|
|
@ -1510,17 +1519,14 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
|
|
||||||
→ RGBA ←
|
→ RGBA ←
|
||||||
Röd, grön, blå och alfa.Definitionen har ännu inte presenterats.
|
Röd, grön, blå och alfa.Definitionen har ännu inte presenterats.
|
||||||
See also:
|
Se även:
|
||||||
@ HSV
|
@ HSV
|
||||||
@ colorspace
|
@ färgrymd
|
||||||
|
|
||||||
|
|
||||||
→ röd ←
|
→ röd ←
|
||||||
Se "RGBA"
|
Se "RGBA"
|
||||||
|
|
||||||
→ saturation ←
|
|
||||||
Se "HSV"
|
|
||||||
|
|
||||||
→ SDL ←
|
→ SDL ←
|
||||||
Se "Simple DirectMedia Layer"
|
Se "Simple DirectMedia Layer"
|
||||||
|
|
||||||
|
|
@ -1536,7 +1542,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
blått) i de tre Uint8-variablerna. (Exempel:"SDL_GetRGB(getpixel(surf,
|
blått) i de tre Uint8-variablerna. (Exempel:"SDL_GetRGB(getpixel(surf,
|
||||||
x, y), surf->format, &r, &g, &b);"
|
x, y), surf->format, &r, &g, &b);"
|
||||||
Se manuskriptet "SDL_GetRGB(3)" man page.
|
Se manuskriptet "SDL_GetRGB(3)" man page.
|
||||||
See also:
|
Se även:
|
||||||
@ SDL_MapRGB()
|
@ SDL_MapRGB()
|
||||||
@ RGBA
|
@ RGBA
|
||||||
|
|
||||||
|
|
@ -1552,7 +1558,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
Tux's Magic tool API-hjälpfunktion"putpixel()"). (Exempel:"putpixel
|
Tux's Magic tool API-hjälpfunktion"putpixel()"). (Exempel:"putpixel
|
||||||
(surf, x, y, SDL_MapRGB(surf->format, r, g, b));".)
|
(surf, x, y, SDL_MapRGB(surf->format, r, g, b));".)
|
||||||
Se manuskriptet "SDL_MapRGB(3)" man page.
|
Se manuskriptet "SDL_MapRGB(3)" man page.
|
||||||
See also:
|
Se även:
|
||||||
@ SDL_GetRGB()
|
@ SDL_GetRGB()
|
||||||
@ RGBA
|
@ RGBA
|
||||||
|
|
||||||
|
|
@ -1600,7 +1606,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ sRGB ←
|
→ sRGB ←
|
||||||
Se "RGBA"
|
Se "RGBA"
|
||||||
|
|
||||||
→ star ←
|
→ stjärna ←
|
||||||
"*". En symbol i C som, när den används i deklarationen av variabler
|
"*". 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.
|
(t.ex. argument till en funktion), anger att variabeln är en pekare.
|
||||||
(Till exempel"int * p;" betyder att"p" är en pekare till ett heltal.)
|
(Till exempel"int * p;" betyder att"p" är en pekare till ett heltal.)
|
||||||
|
|
@ -1619,26 +1625,23 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ struct ←
|
→ struct ←
|
||||||
Se "C-struktur"
|
Se "C-struktur"
|
||||||
|
|
||||||
→ tap ←
|
|
||||||
Se "klick"
|
|
||||||
|
|
||||||
→ tp-magic-config ←
|
→ tp-magic-config ←
|
||||||
Ett kommandoradsprogram som ger information om den installerade
|
Ett kommandoradsprogram som ger information om den installerade
|
||||||
versionen av Rita med Tux till plugin-utvecklare (t.ex. vilka
|
versionen av Rita med Tux till tilläggsutvecklare (t.ex. vilka
|
||||||
C-kompilatorflaggor de ska kompilera med och var plugin-delade objekt
|
C-kompilatorflaggor de ska kompilera med och var plugin-delade objekt
|
||||||
och datafiler ska installeras).
|
och datafiler ska installeras).
|
||||||
Se manuskriptet "tp-magic-config(3)" man page.
|
Se manuskriptet "tp-magic-config(3)" man page.
|
||||||
|
|
||||||
→ tp_magic_api.h ←
|
→ tp_magic_api.h ←
|
||||||
En header-fil som definierar Rita med Tuxs API för magiska verktyg.
|
En header-fil som definierar Rita med Tuxs API för magiska verktyg.
|
||||||
Plugins måste'#inkludera' den.
|
Tillägg måste '#include' den.
|
||||||
|
|
||||||
→ Uint32 ←
|
→ Uint32 ←
|
||||||
Ett 32-bitars, osignerat heltal (definierat av libSDL). Med andra ord,
|
Ett 32-bitars, osignerat heltal (definierat av libSDL). Med andra ord,
|
||||||
fyra byte som kan representera 0 till 4 294 967 295. (Används
|
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
|
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).
|
eller fyra byte som representerar en pixels färg; dvs. RBGA-värde).
|
||||||
See also:
|
Se även:
|
||||||
@ Uint8
|
@ Uint8
|
||||||
@ integer
|
@ integer
|
||||||
@ unsigned
|
@ unsigned
|
||||||
|
|
@ -1647,7 +1650,7 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ Uint8 ←
|
→ Uint8 ←
|
||||||
Ett 8-bitars, osignerat heltal (definierat av libSDL). Med andra ord,
|
Ett 8-bitars, osignerat heltal (definierat av libSDL). Med andra ord,
|
||||||
en byte som kan representera 0 till 255.
|
en byte som kan representera 0 till 255.
|
||||||
See also:
|
Se även:
|
||||||
@ Uint32
|
@ Uint32
|
||||||
@ integer
|
@ integer
|
||||||
@ unsigned
|
@ unsigned
|
||||||
|
|
@ -1656,12 +1659,12 @@ via strukturen"magic_api", som skickas till alla plugins funktioner. (Se
|
||||||
→ utgåva ←
|
→ utgåva ←
|
||||||
Att släppa en musknapp eller att ta bort ett finger eller en pekpenna
|
Att släppa en musknapp eller att ta bort ett finger eller en pekpenna
|
||||||
från en skärm eller surfplatta.
|
från en skärm eller surfplatta.
|
||||||
See also:
|
Se även:
|
||||||
@ klick
|
@ klick
|
||||||
@ dra
|
@ dra
|
||||||
|
|
||||||
|
|
||||||
→ variable ←
|
→ variabel ←
|
||||||
En konstruktion i datorprogrammering som innehåller ett värde som kan
|
En konstruktion i datorprogrammering som innehåller ett värde som kan
|
||||||
refereras till igen senare genom att hänvisa till variabelns namn, och
|
refereras till igen senare genom att hänvisa till variabelns namn, och
|
||||||
vanligtvis ändras senare. Till exempel kan en variabel som innehåller
|
vanligtvis ändras senare. Till exempel kan en variabel som innehåller
|
||||||
|
|
|
||||||
|
|
@ -1343,7 +1343,7 @@ inkluderar:
|
||||||
Detaljerade instruktioner om kommandorads- och
|
Detaljerade instruktioner om kommandorads- och
|
||||||
konfigurationsfilsalternativ, för dem som inte vill använda verktyget
|
konfigurationsfilsalternativ, för dem som inte vill använda verktyget
|
||||||
Konfigurera Rita med Tux för att hantera Rita med Tuxs konfiguration.
|
Konfigurera Rita med Tux för att hantera Rita med Tuxs konfiguration.
|
||||||
o dokumentation av "Magic"-verktyget ("magic-docs")
|
o Dokumentation för "Magi"-verktyget ("magic-docs")
|
||||||
Dokumentation för vart och ett av de för närvarande installerade
|
Dokumentation för vart och ett av de för närvarande installerade
|
||||||
"Magic"-verktygen.
|
"Magic"-verktygen.
|
||||||
o Vanliga frågor ("Vanliga frågor") om Rita med Tux
|
o Vanliga frågor ("Vanliga frågor") om Rita med Tux
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@
|
||||||
På Linux och andra plattformar där X Desktop Group-standarderna används, platsen för användarens konfigurationsfiler. Specifikt var man hittar "<code>user-dirs.dirs</code>", var "<code>XDG_PICTURES_DIR</code>" kan definieras. Den används för att exportera ritningar och animerade GIF-filer. I allmänhet är den inställd på något i stil med "<code>$HOME/Pictures/</code>". Om inget anges kontrollerar Rita med Tux i katalogen "<code>$HOME/.config/</code>". Om konfigurationen inte kan hittas exporterar Rita med Tux helt enkelt ritningar och GIF-filer till "<code>$HOME</code>". </p>
|
På Linux och andra plattformar där X Desktop Group-standarderna används, platsen för användarens konfigurationsfiler. Specifikt var man hittar "<code>user-dirs.dirs</code>", var "<code>XDG_PICTURES_DIR</code>" kan definieras. Den används för att exportera ritningar och animerade GIF-filer. I allmänhet är den inställd på något i stil med "<code>$HOME/Pictures/</code>". Om inget anges kontrollerar Rita med Tux i katalogen "<code>$HOME/.config/</code>". Om konfigurationen inte kan hittas exporterar Rita med Tux helt enkelt ritningar och GIF-filer till "<code>$HOME</code>". </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Tux Paint also uses this to find FontConfig configuration files; see below. </p>
|
Rita med Tux använder också detta för att hitta FontConfig-konfigurationsfiler; se nedan. </p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
|
|
@ -228,7 +228,7 @@
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Tux Paint uses <cite>FontConfig</cite> (via <cite>Pango</cite>, in turn via <cite>SDL_Pango</cite>) to find fonts that may be used by the "Text" and "Label" tools. </p>
|
Rita med Tux använder <cite>FontConfig</cite> (via <cite>Pango</cite>, i sin tur via <cite>SDL_Pango</cite>) för att hitta teckensnitt som kan användas av verktygen "Text" och "Etikett". </p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
|
|
|
||||||
|
|
@ -701,18 +701,18 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
Tux Paint checks a number of standard Operating System locations for fonts that the 'Text' and 'Label' tools might be able to use (unless the "<code>--nosysfonts</code>" option is set). The locations vary, depending on operating system. </p>
|
Rita med Tux kontrollerar ett antal standardplatser i operativsystemet för teckensnitt som verktygen "Text" och "Label" kan använda (om inte alternativet "<code>--nosysfonts</code>" är inställt). Platserna varierar beroende på operativsystem. </p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<strong>Windows</strong>
|
<strong>Windows</strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
The location specified by the "<code>Fonts</code>" option of the "<code>Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</code>" Windows Registry key. </li>
|
Den plats som anges av alternativet "<code>Fonts</code>" i "<code>Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</code>" Windows registernyckel. </li>
|
||||||
<li>
|
<li>
|
||||||
If the above fails, then "<code>C:\WINDOWS\FONTS</code>". </li>
|
If the above fails, then "<code>C:\WINDOWS\FONTS</code>". </li>
|
||||||
<li>
|
<li>
|
||||||
The location specified by the "<code>Local AppData</code>" option of the "<code>Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</code>" Windows Registry key. The path "<code>\Microsoft\Windows\Fonts</code>" is appended to that location. </li>
|
Den plats som anges av alternativet "<code>Local AppData</code>" i "<code>Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders</code>" Windows registernyckel. Sökvägen "<code>\Microsoft\Windows\Fonts</code>" läggs till den platsen. </li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -722,7 +722,7 @@
|
||||||
<li><code>/Library/Fonts</code></li>
|
<li><code>/Library/Fonts</code></li>
|
||||||
<li><code>/usr/share/fonts</code></li>
|
<li><code>/usr/share/fonts</code></li>
|
||||||
<li><code>/usr/X11R6/lib/X11/fonts</code></li>
|
<li><code>/usr/X11R6/lib/X11/fonts</code></li>
|
||||||
<li>The "<code>Library/Fonts</code>" folder in the user's home folder.</li>
|
<li>Mappen "<code>Library/Fonts</code>" i användarens hemmapp.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -734,7 +734,7 @@
|
||||||
<li>
|
<li>
|
||||||
<strong>Haiku</strong>
|
<strong>Haiku</strong>
|
||||||
<p>
|
<p>
|
||||||
The locations found by asking Haiku's "Storage Kit" to find the directories on the "<code>/boot</code>" volume for: <ul>
|
De platser som hittades genom att be Haikus "Storage Kit" att hitta katalogerna på volymen<code>"/boot</code>" för: <ul>
|
||||||
<li><code>B_SYSTEM_FONTS_DIRECTORY</code></li>
|
<li><code>B_SYSTEM_FONTS_DIRECTORY</code></li>
|
||||||
<li><code>B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY</code></li>
|
<li><code>B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY</code></li>
|
||||||
<li><code>B_USER_FONTS_DIRECTORY</code></li>
|
<li><code>B_USER_FONTS_DIRECTORY</code></li>
|
||||||
|
|
@ -770,21 +770,21 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
Tux Paint utilizes <cite>FontConfig</cite> to find additional system-wide and user-specific fonts that the 'Text' and 'Label' tools might be able to use (unless the "<code>--nosysfonts</code>" option is set). It does this by looking for <cite>FontConfig</cite> configuration files ("<code>fonts.conf</code>") in various locations. </p>
|
Rita med Tux använder <cite>FontConfig</cite> för att hitta ytterligare systemomfattande och användarspecifika teckensnitt som verktygen 'Text' och 'Etikett' kan använda (om inte alternativet "<code>--nosysfonts</code>" är inställt). Detta görs genom att leta efter <cite>FontConfig</cite> konfigurationsfiler ("<code>fonts.conf</code>") på olika platser. </p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<strong>Windows</strong>
|
<strong>Windows</strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
The "<code>etc/fonts/fonts.conf</code>" file included with Tux Paint. </li>
|
Filen "<code>etc/fonts/fonts.conf</code>" som medföljer Rita med Tux. </li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<strong>macOS</strong>
|
<strong>macOS</strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
The path specified by the "<code>FONTCONFIG_PATH</code>" environment variable, if set. </li>
|
Den sökväg som anges av miljövariabeln "<code>FONTCONFIG_PATH</code>", om den är inställd. </li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -797,11 +797,11 @@
|
||||||
<strong>Linux/etc.</strong>
|
<strong>Linux/etc.</strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
The path specified by the "<code>FONTCONFIG_PATH</code>" environment variable, if set. </li>
|
Den sökväg som anges av miljövariabeln "<code>FONTCONFIG_PATH</code>", om den är inställd. </li>
|
||||||
<li>
|
<li>
|
||||||
If the above fails, then "<code>/etc/fonts/fonts.conf</code>". </li>
|
If the above fails, then "<code>/etc/fonts/fonts.conf</code>". </li>
|
||||||
<li>
|
<li>
|
||||||
The path specified by the "<code>XDG_CONFIG_HOME</code>" environment variable, if set. There, it looks for the file "<code>fontconfig/fonts.conf</code>". </li>
|
Den sökväg som anges av miljövariabeln "<code>XDG_CONFIG_HOME</code>", om den är inställd. Där letar den efter filen "<code>fontconfig/fonts.conf</code>". </li>
|
||||||
<li>
|
<li>
|
||||||
If the above fails, then "<code>$HOME/.config/fontconfig/fonts.conf</code>". </li>
|
If the above fails, then "<code>$HOME/.config/fontconfig/fonts.conf</code>". </li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -812,14 +812,14 @@
|
||||||
Each FontConfig configuration file ("<code>fonts.conf</code>") is examined for "<code><dir></code>" tags that specify directory (folder) paths where fonts might be found, and Tux Paint scans them and loads the fonts. If a "<code>prefix</code>" attribute is included in the tag, Tux Paint prefixes the path accordingly. <dl>
|
Each FontConfig configuration file ("<code>fonts.conf</code>") is examined for "<code><dir></code>" tags that specify directory (folder) paths where fonts might be found, and Tux Paint scans them and loads the fonts. If a "<code>prefix</code>" attribute is included in the tag, Tux Paint prefixes the path accordingly. <dl>
|
||||||
<dt><code>xdg</code></dt>
|
<dt><code>xdg</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
The directory path specified is considered to be relative to the user's local data path, specified by the "<code>XDG_DATA_HOME</code>" environment variable. If not set, then "<code>.local/share</code>" under the path specified by the "<code>HOME</code>" environment variable will be used, if it exists. </dd>
|
Den angivna katalogsökvägen anses vara relativ i förhållande till användarens lokala datasökväg, som anges av miljövariabeln "<code>XDG_DATA_HOME</code>". Om den inte anges kommer "<code>.local/share</code>" under den sökväg som anges av miljövariabeln "<code>HOME</code>" att användas, om den finns. </dd>
|
||||||
<dt><code>relative</code></dt>
|
<dt><code>relative</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
The directory path specified is considered to be relative to the configuration file itself. </dd>
|
Den angivna katalogsökvägen anses vara relativ i förhållande till själva konfigurationsfilen. </dd>
|
||||||
<dt>
|
<dt>
|
||||||
<code>default</code>, <code>cwd</code>, or no "<code>prefix</code>" attribute specified </dt>
|
<code>default</code>, <code>cwd</code>, or no "<code>prefix</code>" attribute specified </dt>
|
||||||
<dd>
|
<dd>
|
||||||
The directory path specified is considered to be relative to the current working directory (where Tux Paint is running), unless a root path is included at the start (e.g., "/", "C:\\", etc.) </dd>
|
Den angivna katalogsökvägen anses vara relativ till den aktuella arbetskatalogen (där Rita med Tux körs), såvida inte en rotsökväg anges i början (t.ex. "/", "C:\\" etc.) </dd>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
</section><!-- H2: FontConfig -->
|
</section><!-- H2: FontConfig -->
|
||||||
|
|
@ -872,7 +872,7 @@
|
||||||
Tillsammans med överlägget i "målarboksstil" kan du också tillhandahålla en separat bakgrundsbild som en del av en "startbild". Överlägget fungerar på samma sätt: det kan inte ritas över, raderas eller påverkas av "Magic"-verktygen. Det kan däremot bakgrunden! </p>
|
Tillsammans med överlägget i "målarboksstil" kan du också tillhandahålla en separat bakgrundsbild som en del av en "startbild". Överlägget fungerar på samma sätt: det kan inte ritas över, raderas eller påverkas av "Magic"-verktygen. Det kan däremot bakgrunden! </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
När verktyget "Eraser" används på en bild som bygger på den här typen av bild "start, återgår den delen av duken till den ursprungliga bakgrundsbilden från bild "start i stället för att bli enfärgad, t.ex. vit. </p>
|
När verktyget "Eraser" används på en bild som bygger på den här typen av "start"-bild, återgår den delen av duken till den ursprungliga bakgrundsbilden från "start"-bild i stället för att bli enfärgad, t.ex. vit. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Genom att skapa både ett överlägg och en bakgrund kan du skapa en "starter" som simulerar djup. Tänk dig en bakgrund som visar havet och en overlay som är en bild av ett rev. Du kan sedan rita (eller stämpla) fiskar i bilden. De kommer att dyka upp i havet, men aldrig "framför" revet. </p>
|
Genom att skapa både ett överlägg och en bakgrund kan du skapa en "starter" som simulerar djup. Tänk dig en bakgrund som visar havet och en overlay som är en bild av ett rev. Du kan sedan rita (eller stämpla) fiskar i bilden. De kommer att dyka upp i havet, men aldrig "framför" revet. </p>
|
||||||
|
|
@ -882,13 +882,13 @@
|
||||||
</section><!-- H2: Scene-Style Starters -->
|
</section><!-- H2: Scene-Style Starters -->
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
För bästa resultat bör "start" bilder vara minst lika stor som Rita med Tuxs ritduk. (Se avsnittet "Ladda andra bilder i Rita med Tux" i Rita med Tuxs huvuddokumentation (README) för detaljer om storlek) Om de inte är det kommer de att sträckas ut eller skalas. Detta görs utan att påverka formen ("bildförhållandet"), men kan dock ge upphov till viss utslätning av kanterna. </p>
|
För bästa resultat bör "start"-bilder vara minst lika stor som Rita med Tuxs ritduk. (Se avsnittet "Ladda andra bilder i Rita med Tux" i Rita med Tuxs huvuddokumentation (README) för detaljer om storlek) Om de inte är det kommer de att sträckas ut eller skalas. Detta görs utan att påverka formen ("bildförhållandet"), men kan dock ge upphov till viss utslätning av kanterna. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Placera dem i katalogen "<code><b>starters</b></code>". När dialogrutan "New" öppnas i Rita med Tux kommer "start" bilder att visas i den skärm som visas, efter de olika valmöjligheterna för enfärg. </p>
|
Placera dem i katalogen "<code><b>starters</b></code>". När dialogrutan "New" öppnas i Rita med Tux kommer "start"-bilder att visas i den skärm som visas, efter de olika valmöjligheterna för enfärg. </p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<span title="Information">💡</span> <strong>Obs:</strong> "Startbilder" "bifogas" till sparade bilder via en liten textfil som har samma namn som den sparade filen, men med "<code>.dat</code>" som tillägg. Detta gör att den kan fortsätta att påverka teckningen även efter att Rita med Tux har avslutats, eller en annan bild har laddats eller en ny bild har skapats. (Med andra ord, om du baserar en teckning på en bild "start, kommer den alltid att påverkas av den) </p>
|
<span title="Information">💡</span> <strong>Obs:</strong> "Startbilder" "bifogas" till sparade bilder via en liten textfil som har samma namn som den sparade filen, men med "<code>.dat</code>" som tillägg. Detta gör att den kan fortsätta att påverka teckningen även efter att Rita med Tux har avslutats, eller en annan bild har laddats eller en ny bild har skapats. (Med andra ord, om du baserar en teckning på en "start"-bild, kommer den alltid att påverkas av den) </p>
|
||||||
|
|
||||||
<section><!-- H2: Starter Options -->
|
<section><!-- H2: Starter Options -->
|
||||||
<header>
|
<header>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>
|
<title>
|
||||||
Tux Paint Magic Tool Plugin API Documentation </title>
|
Tux Paint Magic Tool Plugin API-dokumentation </title>
|
||||||
<meta http-equiv="Content-Type"
|
<meta http-equiv="Content-Type"
|
||||||
content="text/html; charset=utf-8">
|
content="text/html; charset=utf-8">
|
||||||
<style>
|
<style>
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
version 0.9.36 </h1>
|
version 0.9.36 </h1>
|
||||||
|
|
||||||
<h2>
|
<h2>
|
||||||
Magic Tool Plugin API Documentation </h2>
|
Dokumentation för tillägget Magi-verktygets API </h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Copyright © 2007-2025 av olika bidragsgivare; se <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
|
Copyright © 2007-2025 av olika bidragsgivare; se <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br>
|
||||||
|
|
@ -120,25 +120,25 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#prereqs">Förutsättningar</a></li> <li><a href="#interfaces">Interfaces</a> <ul>
|
<li><a href="#prereqs">Förutsättningar</a></li> <li><a href="#interfaces">Gränssnitt</a> <ul>
|
||||||
<li><a href="#magic_plugin_funcs">plugin-funktioner för "Magic"-verktyget</a> <ul>
|
<li><a href="#magic_plugin_funcs">tilläggsfunktioner för "Magi"-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="#common_args">Vanliga argument till tilläggsfunktioner</a></li> <li><a href="#toolfuncs">Nödvändiga tilläggsfunktioner</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="#housekeeping">Tilläggsfunktioner för "hushållning"</a></li> <li><a href="#eventfuncs">Händelsefunktioner för tillägg</a></li> </ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#tpfuncs">Tux Paint Functions and Data</a> <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">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="#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>
|
||||||
<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>
|
||||||
<li><a href="#compiling">Compiling</a> <ul>
|
<li><a href="#compiling">Kompilering</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-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>
|
||||||
<li><a href="#installing">Installing</a> <ul>
|
<li><a href="#installing">Installering</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-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>
|
||||||
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
@ -153,10 +153,10 @@
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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>
|
<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 -->
|
</section><!-- H1: Overview -->
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -176,20 +176,20 @@
|
||||||
<section class="outer"><!-- H1: Interfaces -->
|
<section class="outer"><!-- H1: Interfaces -->
|
||||||
<header>
|
<header>
|
||||||
<h1 id="interfaces">
|
<h1 id="interfaces">
|
||||||
Interfaces </h1>
|
Gränssnitt </h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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>
|
<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>
|
<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>
|
<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>
|
<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>
|
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 -->
|
<section class="indent"><!-- H2: 'Magic' tool plugin functions -->
|
||||||
<header>
|
<header>
|
||||||
<h2 id="magic_plugin_funcs">
|
<h2 id="magic_plugin_funcs">
|
||||||
plugin-funktioner för "Magic"-verktyget </h2>
|
tilläggsfunktioner för "Magi"-verktyget </h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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 -->
|
<section class="indent"><!-- H3: Common arguments to plugin functions -->
|
||||||
<header>
|
<header>
|
||||||
<h3 id="common_args">
|
<h3 id="common_args">
|
||||||
Vanliga argument till plugin-funktioner </h3>
|
Vanliga argument till tilläggsfunktioner </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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>
|
<dl>
|
||||||
<dt><code><b>magic_api * api</b></code></dt>
|
<dt><code><b>magic_api * api</b></code></dt>
|
||||||
|
|
@ -218,7 +218,7 @@
|
||||||
<p>
|
<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>
|
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>
|
<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"
|
#include "tp_magic_api.h"
|
||||||
</code></blockquote>
|
</code></blockquote>
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -257,19 +257,19 @@
|
||||||
<section class="indent"><!-- H3: Required Plugin Functions -->
|
<section class="indent"><!-- H3: Required Plugin Functions -->
|
||||||
<header>
|
<header>
|
||||||
<h3 id="toolfuncs">
|
<h3 id="toolfuncs">
|
||||||
Nödvändiga plugin-funktioner </h3>
|
Nödvändiga tilläggsfunktioner </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ditt insticksprogram måste minst innehålla alla följande funktioner. </p>
|
Ditt insticksprogram måste minst innehålla alla följande funktioner. </p>
|
||||||
|
|
||||||
<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 -->
|
<section class="indent"><!-- H4: Plugin "housekeeping" functions -->
|
||||||
<header>
|
<header>
|
||||||
<h4 id="housekeeping">
|
<h4 id="housekeeping">
|
||||||
Plugin "hushållning" funktioner </h4>
|
Tilläggsfunktioner för "hushållning" </h4>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
|
@ -284,9 +284,9 @@
|
||||||
<dt><code><b>int init(magic_api * api, Uint8 disabled_features, Uint8 complexity_level)</b></code></dt>
|
<dt><code><b>int init(magic_api * api, Uint8 disabled_features, Uint8 complexity_level)</b></code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
<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>"&".</code> Funktionerna är definierade i <code>tp_magic_api.h:</code>: <ul>
|
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>"&".</code> Funktionerna är definierade i <code>tp_magic_api.h:</code>: <ul>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -294,7 +294,7 @@
|
||||||
<li>
|
<li>
|
||||||
<code>MAGIC_FEATURE_SIZE</code>: Storlek på magiskt verktyg (<code>--nomagicsizes</code>) </li>
|
<code>MAGIC_FEATURE_SIZE</code>: Storlek på magiskt verktyg (<code>--nomagicsizes</code>) </li>
|
||||||
</ul>
|
</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>
|
<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>
|
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>
|
<li>
|
||||||
|
|
@ -302,7 +302,7 @@
|
||||||
<li>
|
<li>
|
||||||
<code>MAGIC_COMPLEXITY_BEGINNER</code> (1): Nybörjare (<code>--complexity=beginner</code>) </li>
|
<code>MAGIC_COMPLEXITY_BEGINNER</code> (1): Nybörjare (<code>--complexity=beginner</code>) </li>
|
||||||
<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>
|
</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>
|
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>
|
<p>
|
||||||
|
|
@ -312,7 +312,7 @@
|
||||||
<dt><code><b>int get_tool_count(magic_api * api)</b></code></dt>
|
<dt><code><b>int get_tool_count(magic_api * api)</b></code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
<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>
|
<p>
|
||||||
|
|
@ -328,7 +328,7 @@
|
||||||
<li>
|
<li>
|
||||||
<code>MODE_PAINT</code> - måla på fri hand (klicka och dra) </li>
|
<code>MODE_PAINT</code> - måla på fri hand (klicka och dra) </li>
|
||||||
<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>
|
<li>
|
||||||
<code>MODE_PAINT_WITH_PREVIEW</code> - frihandsmålning, med förhandsgranskning (klicka och dra) </li>
|
<code>MODE_PAINT_WITH_PREVIEW</code> - frihandsmålning, med förhandsgranskning (klicka och dra) </li>
|
||||||
<li>
|
<li>
|
||||||
|
|
@ -336,7 +336,7 @@
|
||||||
</ul>
|
</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>
|
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>
|
<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>
|
<p>
|
||||||
<b>Obs:</b> Tillagd till Rita med Tux 0.9.21; Magic API-version 0x00000002. </p>
|
<b>Obs:</b> Tillagd till Rita med Tux 0.9.21; Magic API-version 0x00000002. </p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -348,7 +348,7 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
</dd>
|
||||||
|
|
||||||
<dt><code><b>int get_group(magic_api * api, int which)</b></code></dt>
|
<dt><code><b>int get_group(magic_api * api, int which)</b></code></dt>
|
||||||
|
|
@ -372,7 +372,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
<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>
|
<p>
|
||||||
<b>Obs:</b> Tillagd till Rita med Tux 0.9.27; Magic API-version 0x00000005. </p>
|
<b>Obs:</b> Tillagd till Rita med Tux 0.9.27; Magic API-version 0x00000005. </p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -384,7 +384,7 @@
|
||||||
<p>
|
<p>
|
||||||
Rita med Tux kommer att frigöra ("<code>SDL_FreeSurface()</code>") ytan när den avslutas. </p>
|
Rita med Tux kommer att frigöra ("<code>SDL_FreeSurface()</code>") ytan när den avslutas. </p>
|
||||||
<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>
|
</dd>
|
||||||
|
|
||||||
<dt><code><b>char * get_description(magic_api * api, int which, int mode)</b></code></dt>
|
<dt><code><b>char * get_description(magic_api * api, int which, int mode)</b></code></dt>
|
||||||
|
|
@ -394,9 +394,9 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
<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>
|
</dd>
|
||||||
|
|
||||||
<dt><code><b>int requires_colors(magic_api * api, int which)</b></code></dt>
|
<dt><code><b>int requires_colors(magic_api * api, int which)</b></code></dt>
|
||||||
|
|
@ -404,7 +404,7 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
</dd>
|
||||||
|
|
||||||
<dt><code><b>Uint8 accepted_sizes(magic_api * api, int which, int mode)</b></code></dt>
|
<dt><code><b>Uint8 accepted_sizes(magic_api * api, int which, int mode)</b></code></dt>
|
||||||
|
|
@ -412,7 +412,7 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
<p>
|
||||||
<b>Obs:</b> Tillagd till Rita med Tux 0.9.30; Magic API-version 0x00000008. </p>
|
<b>Obs:</b> Tillagd till Rita med Tux 0.9.30; Magic API-version 0x00000008. </p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -422,7 +422,7 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
<p>
|
||||||
<b>Obs:</b> Tillagd till Rita med Tux 0.9.30; Magic API-version 0x00000008. </p>
|
<b>Obs:</b> Tillagd till Rita med Tux 0.9.30; Magic API-version 0x00000008. </p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -430,9 +430,9 @@
|
||||||
<dt><code><b>void shutdown(magic_api * api)</b></code></dt>
|
<dt><code><b>void shutdown(magic_api * api)</b></code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</section><!-- H4: Plugin "housekeeping" functions -->
|
</section><!-- H4: Plugin "housekeeping" functions -->
|
||||||
|
|
@ -440,7 +440,7 @@
|
||||||
<section class="indent"><!-- H4: Plugin event functions -->
|
<section class="indent"><!-- H4: Plugin event functions -->
|
||||||
<header>
|
<header>
|
||||||
<h4 id="eventfuncs">
|
<h4 id="eventfuncs">
|
||||||
Plugin-händelsefunktioner </h4>
|
Händelsefunktioner för tillägg </h4>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
|
@ -450,7 +450,7 @@
|
||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
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>
|
<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>
|
<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>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
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>
|
<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>
|
<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>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
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>
|
<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>
|
<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>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
<p>
|
||||||
Innehållet i teckningsytan omedelbart före musklicket lagras i<code>"snapshot</code>"-ytan. </p>
|
Innehållet i teckningsytan omedelbart före musklicket lagras i<code>"snapshot</code>"-ytan. </p>
|
||||||
</dd>
|
</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>
|
<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>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
<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>
|
<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>
|
</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>
|
<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>
|
<dd>
|
||||||
<p>
|
<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>
|
<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>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</section><!-- H4: Plugin event functions -->
|
</section><!-- H4: Plugin event functions -->
|
||||||
|
|
@ -522,11 +522,11 @@
|
||||||
<section class="indent"><!-- H2: Tux Paint Functions and Data -->
|
<section class="indent"><!-- H2: Tux Paint Functions and Data -->
|
||||||
<header>
|
<header>
|
||||||
<h2 id="tpfuncs">
|
<h2 id="tpfuncs">
|
||||||
Tux Paint Functions and Data </h2>
|
Tux Paint Funktioner och data </h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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 -->
|
<section class="indent"><!-- H3: Pixel Manipulations -->
|
||||||
<header>
|
<header>
|
||||||
|
|
@ -573,14 +573,14 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
<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);
|
void exampleCallBack(void * ptr_to_api, int which_tool, SDL_Surface * canvas, SDL_Surface * snapshot, int x, int y);
|
||||||
</code></blockquote>
|
</code></blockquote>
|
||||||
</p>
|
</p>
|
||||||
<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->line((void *) api, which, canvas, snapshot, ox, oy, x, y, 1, exampleCallBack);
|
api->line((void *) api, which, canvas, snapshot, ox, oy, x, y, 1, exampleCallBack);
|
||||||
</code></blockquote>
|
</code></blockquote>
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -627,11 +627,11 @@
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
<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>
|
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>
|
<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>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</section><!-- H3: Informational -->
|
</section><!-- H3: Informational -->
|
||||||
|
|
@ -639,7 +639,7 @@
|
||||||
<section class="indent"><!-- H3: Sound Functions -->
|
<section class="indent"><!-- H3: Sound Functions -->
|
||||||
<header>
|
<header>
|
||||||
<h3 id="sound">
|
<h3 id="sound">
|
||||||
Sound Functions </h3>
|
Ljudfunktioner </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
|
@ -688,7 +688,7 @@
|
||||||
<section class="indent"><!-- H3: Tux Paint System Calls -->
|
<section class="indent"><!-- H3: Tux Paint System Calls -->
|
||||||
<header>
|
<header>
|
||||||
<h3 id="syscalls">
|
<h3 id="syscalls">
|
||||||
Tux Paint System Calls </h3>
|
Systemanrop för Tux Paint </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
|
@ -789,7 +789,7 @@
|
||||||
<section class="indent"><!-- H2: Constant Definitions in tp_magic_api.h -->
|
<section class="indent"><!-- H2: Constant Definitions in tp_magic_api.h -->
|
||||||
<header>
|
<header>
|
||||||
<h2 id="consts">
|
<h2 id="consts">
|
||||||
Constant Definitions in "<code>tp_magic_api.h</code>" </h2>
|
Konstantdefinitioner i "<code>tp_magic_api.h</code>" </h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -801,9 +801,9 @@
|
||||||
<p>
|
<p>
|
||||||
Detta heltalsvärde representerar vilken version av Rita med Tux 'Magic' tool API som rubriken motsvarar. </p>
|
Detta heltalsvärde representerar vilken version av Rita med Tux 'Magic' tool API som rubriken motsvarar. </p>
|
||||||
<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>
|
<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>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
|
|
@ -820,24 +820,24 @@
|
||||||
<section class="outer"><!-- H1: Compiling -->
|
<section class="outer"><!-- H1: Compiling -->
|
||||||
<header>
|
<header>
|
||||||
<h1 id="compiling">
|
<h1 id="compiling">
|
||||||
Compiling </h1>
|
Kompilering </h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section class="indent"><!-- H2: Linux and other Unix-like Platforms -->
|
<section class="indent"><!-- H2: Linux and other Unix-like Platforms -->
|
||||||
<header>
|
<header>
|
||||||
<h2 id="compiling-linux">
|
<h2 id="compiling-linux">
|
||||||
Linux and other Unix-like Platforms </h2>
|
Linux och andra Unix-liknande plattformar </h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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>
|
<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>
|
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 -->
|
<section class="indent"><!-- H3: Command-Line Example -->
|
||||||
<header>
|
<header>
|
||||||
<h3>
|
<h3>
|
||||||
Command-Line Example </h3>
|
Exempel på kommandoraden </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -885,7 +885,7 @@
|
||||||
<section class="indent"><!-- H3: Advanced Makefile -->
|
<section class="indent"><!-- H3: Advanced Makefile -->
|
||||||
<header>
|
<header>
|
||||||
<h3>
|
<h3>
|
||||||
Advanced Makefile </h3>
|
Avancerad Makefile </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -931,13 +931,13 @@
|
||||||
<section class="outer"><!-- H1: Installing -->
|
<section class="outer"><!-- H1: Installing -->
|
||||||
<header>
|
<header>
|
||||||
<h1 id="installing">
|
<h1 id="installing">
|
||||||
Installing </h1>
|
Installering </h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section class="indent"><!-- H2: Linux and other Unix-like Platforms -->
|
<section class="indent"><!-- H2: Linux and other Unix-like Platforms -->
|
||||||
<header>
|
<header>
|
||||||
<h2 id="installing-linux">
|
<h2 id="installing-linux">
|
||||||
Linux and other Unix-like Platforms </h2>
|
Linux och andra Unix-liknande plattformar </h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -970,7 +970,7 @@
|
||||||
<section class="indent"><!-- H3: Documentation -->
|
<section class="indent"><!-- H3: Documentation -->
|
||||||
<header>
|
<header>
|
||||||
<h3>
|
<h3>
|
||||||
Documentation </h3>
|
Dokumentation </h3>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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>
|
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>
|
<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>
|
<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>
|
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>
|
<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><!-- H3: Putting it Together in a Makefile -->
|
||||||
</section><!-- H2: Linux and other Unix-like Platforms -->
|
</section><!-- H2: Linux and other Unix-like Platforms -->
|
||||||
|
|
||||||
|
|
@ -1097,14 +1097,14 @@
|
||||||
<section class="outer"><!-- H1: Creating plugins with multiple effects -->
|
<section class="outer"><!-- H1: Creating plugins with multiple effects -->
|
||||||
<header>
|
<header>
|
||||||
<h1 id="multiple">
|
<h1 id="multiple">
|
||||||
Skapa plugins med flera effekter </h1>
|
Skapa tillägg med flera effekter </h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<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>
|
<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>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
Använd C<code>"enum</code>" för att räkna upp effekterna och räkna dem. <blockquote><code>
|
Använd C<code>"enum</code>" för att räkna upp effekterna och räkna dem. <blockquote><code>
|
||||||
|
|
@ -1121,9 +1121,9 @@
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
Skapa arrayer av längden<code>"NUM_TOOLS</code>" för att innehålla effektspecifika data. <blockquote><code>
|
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>
|
||||||
"one.ogg", "another.ogg", "yet_another.ogg" };<br>
|
"one.ogg", "another.ogg", "yet_another.ogg" };<br>
|
||||||
Mix_Chunk * min_plugin_snds[NUM_TOOLS]");
|
Mix_Chunk * my_plugin_snds[NUM_TOOLS]");
|
||||||
</code></blockquote>
|
</code></blockquote>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
@ -1134,12 +1134,12 @@
|
||||||
<br>
|
<br>
|
||||||
for (i = 0; i < NUM_TOOLS; i++)<br>
|
for (i = 0; i < NUM_TOOLS; i++)<br>
|
||||||
{<br>
|
{<br>
|
||||||
/* Becomes, for example, "/usr/share/tuxpaint/sounds/magic/one.ogg" */<br>
|
/* Blir till exempel "/usr/share/tuxpaint/sounds/magic/one.ogg" */<br>
|
||||||
<br>
|
<br>
|
||||||
snprintf(fname, sizeof(fname), "%s/sounds/magic/%<!-- -->s",<br>
|
snprintf(fname, sizeof(fname), "%s/sounds/magic/%<!-- -->s",<br>
|
||||||
api->data_prefix, my_plugin_snd_filnamn[i]);<br>
|
api->data_prefix, my_plugin_snd_filenames[i]);<br>
|
||||||
<br>
|
<br>
|
||||||
min_plugin_snds[i] = Mix_LoadWAV(fname);<br>
|
my_plugin_snds[i] = Mix_LoadWAV(fname);<br>
|
||||||
}
|
}
|
||||||
</code></blockquote>
|
</code></blockquote>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -1149,7 +1149,7 @@
|
||||||
int i;<br>
|
int i;<br>
|
||||||
<br>
|
<br>
|
||||||
for (i = 0; i < NUM_TOOLS; i++)<br>
|
for (i = 0; i < NUM_TOOLS; i++)<br>
|
||||||
Mix_FreeChunk(min_plugin_snds[i]);
|
Mix_FreeChunk(my_plugin_snds[i]);
|
||||||
</code></blockquote>
|
</code></blockquote>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
@ -1159,7 +1159,7 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<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 -->
|
</section><!-- H1: Creating plugins with multiple effects -->
|
||||||
|
|
||||||
|
|
@ -1167,7 +1167,7 @@
|
||||||
<section class="outer"><!-- H1: Example Code -->
|
<section class="outer"><!-- H1: Example Code -->
|
||||||
<header>
|
<header>
|
||||||
<h1 id="examples">
|
<h1 id="examples">
|
||||||
Example Code </h1>
|
Exempelkod </h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -1203,7 +1203,7 @@
|
||||||
Se "ampersand" </dd>
|
Se "ampersand" </dd>
|
||||||
<dt><code>*</code></dt>
|
<dt><code>*</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "star" </dd>
|
Se "stjärna" </dd>
|
||||||
<dt><code>-></code></dt>
|
<dt><code>-></code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "pil" </dd>
|
Se "pil" </dd>
|
||||||
|
|
@ -1212,7 +1212,7 @@
|
||||||
Se "punkt" </dd>
|
Se "punkt" </dd>
|
||||||
<dt><code>`</code></dt>
|
<dt><code>`</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "grave" </dd>
|
Se "grav" </dd>
|
||||||
<dt>alfa</dt>
|
<dt>alfa</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "RGBA" </dd>
|
Se "RGBA" </dd>
|
||||||
|
|
@ -1223,7 +1223,7 @@ Se även: "bit" </dd>
|
||||||
<dt>ampersand (pekare)</dt>
|
<dt>ampersand (pekare)</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<code>"&"</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>"&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/>
|
<code>"&"</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>"&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>
|
<dt>API</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Gränssnitt för applikationsprogrammering. <i>Definitionen har ännu inte presenterats.</i> </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>
|
Ett värde som skickas till en funktion. </dd>
|
||||||
<dt>backquote / backtick</dt>
|
<dt>backquote / backtick</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "grave" </dd>
|
Se "grav" </dd>
|
||||||
<dt>BASH</dt>
|
<dt>BASH</dt>
|
||||||
<dd>
|
<dd>
|
||||||
"Bourne Again Shell", ett skal- och kommandospråk för Unix. </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>
|
<dt>C-uppräkning</dt>
|
||||||
<dd>
|
<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>
|
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>
|
<dt><code>#define</code></dt>
|
||||||
<dd>
|
<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>
|
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>
|
<dt>dra</dt>
|
||||||
<dd>
|
<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/>
|
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>
|
<ul>
|
||||||
<li>klick</li><li>utgåva</li></ul>
|
<li>klick</li><li>utgåva</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>element</dt>
|
<dt>element</dt>
|
||||||
<dd>
|
<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/>
|
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>
|
<ul>
|
||||||
<li>C-struktur</li><li>punkt</li><li>pil</li></ul>
|
<li>C-struktur</li><li>punkt</li><li>pil</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -1302,8 +1295,8 @@ See also:
|
||||||
Se "C-uppräkning" </dd>
|
Se "C-uppräkning" </dd>
|
||||||
<dt><code>float</code></dt>
|
<dt><code>float</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "floating point" </dd>
|
Se "flyttal" </dd>
|
||||||
<dt>floating point</dt>
|
<dt>flyttal</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<i>Definitionen har ännu inte presenterats.</i> <br/>
|
<i>Definitionen har ännu inte presenterats.</i> <br/>
|
||||||
Se även: "heltal" </dd>
|
Se även: "heltal" </dd>
|
||||||
|
|
@ -1313,9 +1306,16 @@ Se även: "heltal" </dd>
|
||||||
<dt><code>free()</code></dt>
|
<dt><code>free()</code></dt>
|
||||||
<dd>
|
<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>
|
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>
|
<dd>
|
||||||
Se "C-funktion" </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>
|
<dt><code>gcc</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "GNU C-kompilator" </dd>
|
Se "GNU C-kompilator" </dd>
|
||||||
|
|
@ -1326,7 +1326,7 @@ Se även: "Krita" </dd>
|
||||||
<dt>GNU C-kompilator</dt>
|
<dt>GNU C-kompilator</dt>
|
||||||
<dd>
|
<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>
|
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>
|
<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>
|
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>
|
<dt>grön</dt>
|
||||||
|
|
@ -1338,13 +1338,13 @@ Se även: "Krita" </dd>
|
||||||
<dt>heltal</dt>
|
<dt>heltal</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<i>Definitionen har ännu inte presenterats.</i> <br/>
|
<i>Definitionen har ännu inte presenterats.</i> <br/>
|
||||||
Se även: "floating point" </dd>
|
Se även: "flyttal" </dd>
|
||||||
<dt>HSV</dt>
|
<dt>HSV</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Färgton, mättnad och värde.<i>Definitionen har ännu inte presenterats.</i> <br/>
|
Färgton, mättnad och värde.<i>Definitionen har ännu inte presenterats.</i> <br/>
|
||||||
See also:
|
Se även:
|
||||||
<ul>
|
<ul>
|
||||||
<li>RGBA</li><li>colorspace</li></ul>
|
<li>RGBA</li><li>färgrymd</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>huvudfil</dt>
|
<dt>huvudfil</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
@ -1367,7 +1367,7 @@ See also:
|
||||||
<dt>klick</dt>
|
<dt>klick</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Att trycka på en knapp på en mus, trycka på en pekskärm eller trycka en penna mot en surfplatta. <br/>
|
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>
|
<ul>
|
||||||
<li>dra</li><li>utgåva</li></ul>
|
<li>dra</li><li>utgåva</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -1384,12 +1384,12 @@ Se även: "GIMP" </dd>
|
||||||
<dt>linjär</dt>
|
<dt>linjär</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<i>Definitionen har ännu inte presenterats.</i> </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>
|
<dt><code>magic_api</code></dt>
|
||||||
<dd>
|
<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>
|
<dt><code>make</code></dt>
|
||||||
<dd>
|
<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/>
|
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>
|
<dt><code>Mix_LoadWAV()</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
En SDL_mixer-funktion som laddar en ljudfil (WAV, Ogg Vorbis, etc.) och returnerar den som en<code>"Mix_Chunk *</code>". </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>
|
<dd>
|
||||||
<i>Definitionen har ännu inte presenterats.</i> </dd>
|
<i>Definitionen har ännu inte presenterats.</i> </dd>
|
||||||
<dt>nyans</dt>
|
<dt>nyans</dt>
|
||||||
|
|
@ -1425,19 +1428,22 @@ Se även: "WAVE" </dd>
|
||||||
<dt>osignerad</dt>
|
<dt>osignerad</dt>
|
||||||
<dd>
|
<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/>
|
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>
|
<ul>
|
||||||
<li>Uint8</li><li>Uint32</li><li>integer</li></ul>
|
<li>Uint8</li><li>Uint32</li><li>integer</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
<dt>peka</dt>
|
||||||
|
<dd>
|
||||||
|
Se "klick" </dd>
|
||||||
|
<dt>pekare</dt>
|
||||||
|
<dd>
|
||||||
|
Se "C-pekare" </dd>
|
||||||
<dt>pil</dt>
|
<dt>pil</dt>
|
||||||
<dd>
|
<dd>
|
||||||
<code>"->"</code>. En symbol i C som refererar till ett element inom en pekare till en struktur. </dd>
|
<code>"->"</code>. En symbol i C som refererar till ett element inom en pekare till en struktur. </dd>
|
||||||
<dt><code>.png</code></dt>
|
<dt><code>.png</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "Portable Network Graphics" </dd>
|
Se "Portable Network Graphics" </dd>
|
||||||
<dt>pointer</dt>
|
|
||||||
<dd>
|
|
||||||
Se "C-pekare" </dd>
|
|
||||||
<dt>Portable Network Graphics</dt>
|
<dt>Portable Network Graphics</dt>
|
||||||
<dd>
|
<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/>
|
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>
|
<dt>punkt</dt>
|
||||||
<dd>
|
<dd>
|
||||||
"<code>.</code>". En symbol i C som refererar till ett element inom en struktur. <br/>
|
"<code>.</code>". En symbol i C som refererar till ett element inom en struktur. <br/>
|
||||||
See also:
|
Se även:
|
||||||
<ul>
|
<ul>
|
||||||
<li>C-struktur</li><li>pil</li></ul>
|
<li>C-struktur</li><li>pil</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -1462,16 +1468,13 @@ See also:
|
||||||
<dt>RGBA</dt>
|
<dt>RGBA</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Röd, grön, blå och alfa.<i>Definitionen har ännu inte presenterats.</i> <br/>
|
Röd, grön, blå och alfa.<i>Definitionen har ännu inte presenterats.</i> <br/>
|
||||||
See also:
|
Se även:
|
||||||
<ul>
|
<ul>
|
||||||
<li>HSV</li><li>colorspace</li></ul>
|
<li>HSV</li><li>färgrymd</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>röd</dt>
|
<dt>röd</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "RGBA" </dd>
|
Se "RGBA" </dd>
|
||||||
<dt>saturation</dt>
|
|
||||||
<dd>
|
|
||||||
Se "HSV" </dd>
|
|
||||||
<dt>SDL</dt>
|
<dt>SDL</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "Simple DirectMedia Layer" </dd>
|
Se "Simple DirectMedia Layer" </dd>
|
||||||
|
|
@ -1481,7 +1484,7 @@ See also:
|
||||||
<dt><code>SDL_GetRGB()</code></dt>
|
<dt><code>SDL_GetRGB()</code></dt>
|
||||||
<dd>
|
<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->format, &r, &g, &b);</code>"<br/>Se manuskriptet "<code>SDL_GetRGB(3)</code>" <i>man page</i>. <br/>
|
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->format, &r, &g, &b);</code>"<br/>Se manuskriptet "<code>SDL_GetRGB(3)</code>" <i>man page</i>. <br/>
|
||||||
See also:
|
Se även:
|
||||||
<ul>
|
<ul>
|
||||||
<li>SDL_MapRGB()</li><li>RGBA</li></ul>
|
<li>SDL_MapRGB()</li><li>RGBA</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -1491,7 +1494,7 @@ See also:
|
||||||
<dt><code>SDL_MapRGB()</code></dt>
|
<dt><code>SDL_MapRGB()</code></dt>
|
||||||
<dd>
|
<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->format, r, g, b));</code>".)<br/>Se manuskriptet "<code>SDL_MapRGB(3)</code>" <i>man page</i>. <br/>
|
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->format, r, g, b));</code>".)<br/>Se manuskriptet "<code>SDL_MapRGB(3)</code>" <i>man page</i>. <br/>
|
||||||
See also:
|
Se även:
|
||||||
<ul>
|
<ul>
|
||||||
<li>SDL_GetRGB()</li><li>RGBA</li></ul>
|
<li>SDL_GetRGB()</li><li>RGBA</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
@ -1522,7 +1525,7 @@ See also:
|
||||||
<dt>sRGB</dt>
|
<dt>sRGB</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "RGBA" </dd>
|
Se "RGBA" </dd>
|
||||||
<dt>star</dt>
|
<dt>stjärna</dt>
|
||||||
<dd>
|
<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/>
|
<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>
|
Se även: "ampersand" </dd>
|
||||||
|
|
@ -1532,37 +1535,34 @@ Se även: "ampersand" </dd>
|
||||||
<dt><code>struct</code></dt>
|
<dt><code>struct</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Se "C-struktur" </dd>
|
Se "C-struktur" </dd>
|
||||||
<dt>tap</dt>
|
|
||||||
<dd>
|
|
||||||
Se "klick" </dd>
|
|
||||||
<dt><code>tp-magic-config</code></dt>
|
<dt><code>tp-magic-config</code></dt>
|
||||||
<dd>
|
<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>
|
<dt><code>tp_magic_api.h</code></dt>
|
||||||
<dd>
|
<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>
|
<dt><code>Uint32</code></dt>
|
||||||
<dd>
|
<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/>
|
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>
|
<ul>
|
||||||
<li>Uint8</li><li>integer</li><li>unsigned</li></ul>
|
<li>Uint8</li><li>integer</li><li>unsigned</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><code>Uint8</code></dt>
|
<dt><code>Uint8</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Ett 8-bitars, osignerat heltal (definierat av libSDL). Med andra ord, en byte som kan representera 0 till 255. <br/>
|
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>
|
<ul>
|
||||||
<li>Uint32</li><li>integer</li><li>unsigned</li></ul>
|
<li>Uint32</li><li>integer</li><li>unsigned</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>utgåva</dt>
|
<dt>utgåva</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Att släppa en musknapp eller att ta bort ett finger eller en pekpenna från en skärm eller surfplatta. <br/>
|
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>
|
<ul>
|
||||||
<li>klick</li><li>dra</li></ul>
|
<li>klick</li><li>dra</li></ul>
|
||||||
</dd>
|
</dd>
|
||||||
<dt>variable</dt>
|
<dt>variabel</dt>
|
||||||
<dd>
|
<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 >= 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>
|
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 >= 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>
|
<dt>värde</dt>
|
||||||
|
|
|
||||||
|
|
@ -1847,7 +1847,7 @@
|
||||||
Detaljerade instruktioner om kommandorads- och konfigurationsfilsalternativ, för dem som inte vill använda verktyget Konfigurera Rita med Tux för att hantera Rita med Tuxs konfiguration. </li>
|
Detaljerade instruktioner om kommandorads- och konfigurationsfilsalternativ, för dem som inte vill använda verktyget Konfigurera Rita med Tux för att hantera Rita med Tuxs konfiguration. </li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="../magic-docs/html/index.html">dokumentation av "Magic"-verktyget ("<code>magic-docs</code>")</a><br>
|
<a href="../magic-docs/html/index.html">Dokumentation för "Magi"-verktyget ("<code>magic-docs</code>")</a><br>
|
||||||
Dokumentation för vart och ett av de för närvarande installerade "Magic"-verktygen. </li>
|
Dokumentation för vart och ett av de för närvarande installerade "Magic"-verktygen. </li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/* tp_magic_example.c
|
/* tp_magic_example.c
|
||||||
|
|
||||||
Ett exempel på ett "Magic"-verktygsplugin för Rita med Tux
|
Ett exempel på ett "Magi"-verktygstillägg för Rita med Tux
|
||||||
maj 10, 2024
|
maj 10, 2024
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
#include <string.h> // För "strdup()"
|
#include <string.h> // För "strdup()"
|
||||||
#include <libintl.h> // För "gettext()"
|
#include <libintl.h> // För "gettext()"
|
||||||
|
|
||||||
#include "tp_magic_api.h" // Tux Paint "Magic" tool API header
|
#include "tp_magic_api.h" // Tux Paint "Magic" verktyg API-huvud
|
||||||
#include "SDL_image.h" // För IMG_Load(), för att ladda vår PNG-ikon
|
#include "SDL_image.h" // För IMG_Load(), för att ladda vår PNG-ikon
|
||||||
#include "SDL_mixer.h" // För Mix_LoadWAV(), för att ladda våra ljudeffekter
|
#include "SDL_mixer.h" // För Mix_LoadWAV(), för att ladda våra ljudeffekter
|
||||||
|
|
||||||
|
|
@ -55,8 +55,8 @@ andra språk.
|
||||||
/* En lista med namn för verktygen */
|
/* En lista med namn för verktygen */
|
||||||
|
|
||||||
const char *verktygsnamn[NUM_TOOLS] = {
|
const char *verktygsnamn[NUM_TOOLS] = {
|
||||||
gettext_noop("A tool"),
|
gettext_noop("Ett verktyg"),
|
||||||
gettext_noop("Another tool")
|
gettext_noop("Ett annat verktyg")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -77,10 +77,10 @@ const char *tool_descriptions[NUM_TOOLS] = {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Our global variables: */
|
/* Våra globala variabler: */
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* Sound effects: */
|
/* Ljudeffekter: */
|
||||||
Mix_Chunk *sound_effects[NUM_TOOLS];
|
Mix_Chunk *sound_effects[NUM_TOOLS];
|
||||||
|
|
||||||
/* Den aktuella färgen (ett "RGB"-värde (röd, grön, blå) som användaren
|
/* Den aktuella färgen (ett "RGB"-värde (röd, grön, blå) som användaren
|
||||||
|
|
@ -95,17 +95,17 @@ Uint8 example_storlek;
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Dessa funktioner anropas av andra funktioner inom vårt plugin, så vi
|
Dessa funktioner anropas av andra funktioner inom vårt tillägg, så vi
|
||||||
tillhandahåller en "prototyp" av dem, så att kompilatorn vet vad de
|
tillhandahåller en "prototyp" av dem, så att kompilatorn vet vad de
|
||||||
accepterar och returnerar. Detta gör att vi kan använda dem i andra
|
accepterar och returnerar. Detta gör att vi kan använda dem i andra
|
||||||
funktioner som deklareras _före_ dem.
|
funktioner som deklareras _före_ dem.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void example_drag(magic_api * api, int som, SDL_Surface * canvas,
|
void example_drag(magic_api * api, int som, SDL_Surface * malarduk,
|
||||||
SDL_Surface * ogonblicksbild, int gammal_x, int gammal_y,
|
SDL_Surface * ogonblicksbild, int gammal_x, int gammal_y,
|
||||||
int x, int y, SDL_Rect * uppdatering_rect);
|
int x, int y, SDL_Rect * uppdatering_rect);
|
||||||
|
|
||||||
void example_line_callback(void *pointer, int som, SDL_Surface * canvas,
|
void example_line_callback(void *pekare, int som, SDL_Surface * malarduk,
|
||||||
SDL_Surface * ogonblicksbild, int x, int y);
|
SDL_Surface * ogonblicksbild, int x, int y);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -116,8 +116,8 @@ void example_line_callback(void *pointer, int som, SDL_Surface * canvas,
|
||||||
Kontroll av API-version
|
Kontroll av API-version
|
||||||
|
|
||||||
Den löpande kopian av Rita med Tux som har laddat oss frågar oss först
|
Den löpande kopian av Rita med Tux som har laddat oss frågar oss först
|
||||||
vilken version av Rita med Tux 'Magic' tool plugin API vi byggdes mot. Om
|
vilken version av Rita med Tux 'Magi' verktygstilläggs-API vi byggdes mot.
|
||||||
det anser att vi är kompatibla kommer vi att användas!
|
Om det anser att vi är kompatibla kommer vi att användas!
|
||||||
|
|
||||||
Allt vi behöver göra här är att returnera "TP_MAGIC_API_VERSION", som
|
Allt vi behöver göra här är att returnera "TP_MAGIC_API_VERSION", som
|
||||||
definieras (#define) i headerfilen "tp_magic_api.h".
|
definieras (#define) i headerfilen "tp_magic_api.h".
|
||||||
|
|
@ -132,7 +132,7 @@ Uint32 example_api_version(void)
|
||||||
/*
|
/*
|
||||||
Initiering av Samhain
|
Initiering av Samhain
|
||||||
|
|
||||||
Detta händer en gång, när Rita med Tux startar och laddar alla plugins
|
Detta händer en gång, när Rita med Tux startar och laddar alla tillägg
|
||||||
för "Magic"-verktyget. (Förutsatt att det vi fick tillbaka från
|
för "Magic"-verktyget. (Förutsatt att det vi fick tillbaka från
|
||||||
api_version var acceptabelt!)
|
api_version var acceptabelt!)
|
||||||
|
|
||||||
|
|
@ -159,7 +159,7 @@ int example_init(magic_api *api, Uint8 inaktiverade_funktioner,
|
||||||
|
|
||||||
Använd "api->data_directory" för att ta reda på var våra ljud ska vara.
|
Använd "api->data_directory" för att ta reda på var våra ljud ska vara.
|
||||||
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
||||||
vi installerade vårt plugin och dess data)
|
vi installerade vårt tillägg och dess data)
|
||||||
*/
|
*/
|
||||||
snprintf(filnamn, sizeof(filnamn), "%ssounds/magic/%s",
|
snprintf(filnamn, sizeof(filnamn), "%ssounds/magic/%s",
|
||||||
api->data_directory, ljud_filnamn[i]);
|
api->data_directory, ljud_filnamn[i]);
|
||||||
|
|
@ -195,8 +195,8 @@ int example_get_tool_count(magic_api *api)
|
||||||
/*
|
/*
|
||||||
Ladda våra ikoner
|
Ladda våra ikoner
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att
|
||||||
tillhandahålla ikoner för verktygsknapparna "Magic".
|
tillhandahålla ikoner för verktygsknapparna "Magi".
|
||||||
*/
|
*/
|
||||||
SDL_Surface *example_get_icon(magic_api *api, int som)
|
SDL_Surface *example_get_icon(magic_api *api, int som)
|
||||||
{
|
{
|
||||||
|
|
@ -208,7 +208,7 @@ SDL_Surface *example_get_icon(magic_api *api, int som)
|
||||||
|
|
||||||
Använd "api->data_directory" för att räkna ut var våra ljud ska vara.
|
Använd "api->data_directory" för att räkna ut var våra ljud ska vara.
|
||||||
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
||||||
vi installerade vårt plugin och dess data)
|
vi installerade vårt tillägg och dess data)
|
||||||
|
|
||||||
Vi använder "som" (vilket av våra verktyg som Rita med Tux frågar om)
|
Vi använder "som" (vilket av våra verktyg som Rita med Tux frågar om)
|
||||||
som ett index i matrisen.
|
som ett index i matrisen.
|
||||||
|
|
@ -227,7 +227,7 @@ SDL_Surface *example_get_icon(magic_api *api, int som)
|
||||||
/*
|
/*
|
||||||
Rapportera våra namn på "Magic"-verktyg
|
Rapportera våra namn på "Magic"-verktyg
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att ange
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att ange
|
||||||
namn (etiketter) för verktygsknapparna "Magic".
|
namn (etiketter) för verktygsknapparna "Magic".
|
||||||
*/
|
*/
|
||||||
char *example_get_name(magic_api *api, int som)
|
char *example_get_name(magic_api *api, int som)
|
||||||
|
|
@ -265,7 +265,7 @@ char *example_get_name(magic_api *api, int som)
|
||||||
/*
|
/*
|
||||||
Rapportera våra "magiska" verktygsgrupper
|
Rapportera våra "magiska" verktygsgrupper
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att ange
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att ange
|
||||||
var verktyget ska grupperas.
|
var verktyget ska grupperas.
|
||||||
*/
|
*/
|
||||||
int example_get_group(magic_api *api, int som)
|
int example_get_group(magic_api *api, int som)
|
||||||
|
|
@ -298,10 +298,10 @@ int *example_get_order(int som)
|
||||||
/*
|
/*
|
||||||
Rapportera våra beskrivningar av "Magic"-verktyget
|
Rapportera våra beskrivningar av "Magic"-verktyget
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att ge
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att ge
|
||||||
beskrivningar av varje "Magic"-verktyg.
|
beskrivningar av varje "Magi"-verktyg.
|
||||||
*/
|
*/
|
||||||
char *example_get_description(magic_api *api, int som, int lage)
|
char *example_get_description(magic_api *api, int som, int mode)
|
||||||
{
|
{
|
||||||
const char *var_desc_engelska;
|
const char *var_desc_engelska;
|
||||||
const char *var_beskrivning_lokaliserad;
|
const char *var_beskrivning_lokaliserad;
|
||||||
|
|
@ -361,7 +361,7 @@ int example_modes(magic_api *api, int som)
|
||||||
|
|
||||||
// Rapportera om verktygen erbjuder storleksalternativ
|
// Rapportera om verktygen erbjuder storleksalternativ
|
||||||
|
|
||||||
Uint8 example_accepted_sizes(magic_api *api, int som, int lage)
|
Uint8 example_accepted_sizes(magic_api *api, int som, int mode)
|
||||||
{
|
{
|
||||||
if (som == VERKTYG_ONE)
|
if (som == VERKTYG_ONE)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -372,7 +372,7 @@ Uint8 example_accepted_sizes(magic_api *api, int som, int lage)
|
||||||
|
|
||||||
// Återgå till vårt standardstorleksalternativ
|
// Återgå till vårt standardstorleksalternativ
|
||||||
|
|
||||||
Uint8 example_default_size(magic_api *api, int som, int lage)
|
Uint8 example_default_size(magic_api *api, int som, int mode)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -382,7 +382,7 @@ Uint8 example_default_size(magic_api *api, int som, int lage)
|
||||||
Stäng av
|
Stäng av
|
||||||
|
|
||||||
Rita med Tux håller på att avslutas. När programmet avslutas ber det
|
Rita med Tux håller på att avslutas. När programmet avslutas ber det
|
||||||
alla plugins att "städa upp" efter sig själva. Vi laddade till exempel
|
alla tillägg att "städa upp" efter sig själva. Vi laddade till exempel
|
||||||
några ljudeffekter vid start (i vår funktion example_init()), så vi bör
|
några ljudeffekter vid start (i vår funktion example_init()), så vi bör
|
||||||
frigöra det minne som används av dem nu.
|
frigöra det minne som används av dem nu.
|
||||||
*/
|
*/
|
||||||
|
|
@ -405,9 +405,9 @@ void example_shutdown(magic_api *api)
|
||||||
/* Påverkar duken vid klick: */
|
/* Påverkar duken vid klick: */
|
||||||
|
|
||||||
void
|
void
|
||||||
example_click(magic_api *api, int som, int lage,
|
example_click(magic_api *api, int som, int mode,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, int x, int y,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild, int x,
|
||||||
SDL_Rect *uppdatering_rect)
|
int y, SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
I vårt fall är ett enda klick (som också är början på en dragning!)
|
I vårt fall är ett enda klick (som också är början på en dragning!)
|
||||||
|
|
@ -418,7 +418,7 @@ example_click(magic_api *api, int som, int lage,
|
||||||
med (x,y) för både start- och slutpunkterna för en linje.
|
med (x,y) för både start- och slutpunkterna för en linje.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
example_drag(api, som, canvas, ogonblicksbild, x, y, x, y,
|
example_drag(api, som, malarduk, ogonblicksbild, x, y, x, y,
|
||||||
uppdatering_rect);
|
uppdatering_rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -426,7 +426,7 @@ example_click(magic_api *api, int som, int lage,
|
||||||
/* Påverkar duken vid dragning: */
|
/* Påverkar duken vid dragning: */
|
||||||
void
|
void
|
||||||
example_drag(magic_api *api, int som,
|
example_drag(magic_api *api, int som,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild,
|
||||||
int gammal_x, int gammal_y, int x, int y,
|
int gammal_x, int gammal_y, int x, int y,
|
||||||
SDL_Rect *uppdatering_rect)
|
SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
|
|
@ -441,12 +441,12 @@ example_drag(magic_api *api, int som,
|
||||||
ögonblicksbildsdukarna).
|
ögonblicksbildsdukarna).
|
||||||
*/
|
*/
|
||||||
SDL_LockSurface(ogonblicksbild);
|
SDL_LockSurface(ogonblicksbild);
|
||||||
SDL_LockSurface(canvas);
|
SDL_LockSurface(malarduk);
|
||||||
|
|
||||||
api->line((void *) api, som, canvas, ogonblicksbild,
|
api->line((void *) api, som, malarduk, ogonblicksbild,
|
||||||
gammal_x, gammal_y, x, y, 1, example_line_callback);
|
gammal_x, gammal_y, x, y, 1, example_line_callback);
|
||||||
|
|
||||||
SDL_UnlockSurface(canvas);
|
SDL_UnlockSurface(malarduk);
|
||||||
SDL_UnlockSurface(ogonblicksbild);
|
SDL_UnlockSurface(ogonblicksbild);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -505,7 +505,7 @@ example_drag(magic_api *api, int som,
|
||||||
kommer att panorera från högtalare till högtalare när du drar musen
|
kommer att panorera från högtalare till högtalare när du drar musen
|
||||||
runt på duken!)
|
runt på duken!)
|
||||||
*/
|
*/
|
||||||
api->playsound(sound_effects[som], (x * 255) / canvas->w, /* Vänster/höger panorering */
|
api->playsound(sound_effects[som], (x * 255) / malarduk->w, /* Vänster/höger panorering */
|
||||||
255 /* Nära/långt avstånd (loudness) */ );
|
255 /* Nära/långt avstånd (loudness) */ );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -514,7 +514,7 @@ example_drag(magic_api *api, int som,
|
||||||
|
|
||||||
void
|
void
|
||||||
example_release(magic_api *api, int som,
|
example_release(magic_api *api, int som,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, int x,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild, int x,
|
||||||
int y, SDL_Rect *uppdatering_rect)
|
int y, SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
@ -525,7 +525,7 @@ example_release(magic_api *api, int som,
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Accept colors
|
Acceptera färger
|
||||||
|
|
||||||
När något av våra "Magic"-verktyg aktiveras av användaren, om verktyget
|
När något av våra "Magic"-verktyg aktiveras av användaren, om verktyget
|
||||||
accepterar färger, skickas det aktuella färgvalet till oss.
|
accepterar färger, skickas det aktuella färgvalet till oss.
|
||||||
|
|
@ -536,7 +536,7 @@ Om något av våra färgaccepterande verktyg är aktivt när användaren
|
||||||
Färgen anges som RGB-värden (rött, grönt och blått) från 0 (mörkast)
|
Färgen anges som RGB-värden (rött, grönt och blått) från 0 (mörkast)
|
||||||
till 255 (ljusast).
|
till 255 (ljusast).
|
||||||
*/
|
*/
|
||||||
void example_set_color(magic_api *api, int which, SDL_Surface *canvas,
|
void example_set_color(magic_api *api, int which, SDL_Surface *malarduk,
|
||||||
SDL_Surface *ogonblicksbild, Uint8 r, Uint8 g, Uint8 b,
|
SDL_Surface *ogonblicksbild, Uint8 r, Uint8 g, Uint8 b,
|
||||||
SDL_Rect *uppdatering_rect)
|
SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
|
|
@ -565,7 +565,7 @@ värde som returneras av vår example_accepted_sizes()-funktion under
|
||||||
installationen.
|
installationen.
|
||||||
*/
|
*/
|
||||||
void example_set_size(magic_api *api, int which, int mode,
|
void example_set_size(magic_api *api, int which, int mode,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild,
|
||||||
Uint8 storlek, SDL_Rect *uppdatering_rect)
|
Uint8 storlek, SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
@ -583,18 +583,18 @@ void example_set_size(magic_api *api, int which, int mode,
|
||||||
/*
|
/*
|
||||||
Vår "callback"-funktion
|
Vår "callback"-funktion
|
||||||
|
|
||||||
Vi gör "arbetet" i denna återuppringning. Vår plugin-fil har bara en.
|
Vi gör "arbetet" i denna återuppringning. Vår tilläggsfil har bara en.
|
||||||
Vissa plugins för "magiska" verktyg kan ha fler, beroende på vilka
|
Vissa tillägg för "magiska" verktyg kan ha fler, beroende på vilka
|
||||||
verktyg de tillhandahåller. Vissa har inga (eftersom de inte är
|
verktyg de tillhandahåller. Vissa har inga (eftersom de inte är
|
||||||
klick-och-drag-verktyg i målningsstil).
|
klick-och-drag-verktyg i målningsstil).
|
||||||
|
|
||||||
Vår callback-funktion anropas en gång för varje punkt längs en linje
|
Vår callback-funktion anropas en gång för varje punkt längs en linje
|
||||||
mellan musens föregående och nuvarande position, när den dras.
|
mellan musens föregående och nuvarande position, när den dras.
|
||||||
|
|
||||||
Vår callback uppmärksammar 'som' för att avgöra vilket av pluginets
|
Vår callback uppmärksammar 'som' för att avgöra vilket av
|
||||||
verktyg som för närvarande är valt.
|
tilläggsverktyg som för närvarande är valt.
|
||||||
*/
|
*/
|
||||||
void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
void example_line_callback(void *pekare, int som, SDL_Surface *malarduk,
|
||||||
SDL_Surface *ogonblicksbild, int x, int y)
|
SDL_Surface *ogonblicksbild, int x, int y)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
@ -608,7 +608,7 @@ void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
||||||
"(magic_api *)" nedan kastar den generiska "void *"-pekaren till den
|
"(magic_api *)" nedan kastar den generiska "void *"-pekaren till den
|
||||||
"typ" av pekare vi vill ha, en pekare till en "magic_api"-struktur)
|
"typ" av pekare vi vill ha, en pekare till en "magic_api"-struktur)
|
||||||
*/
|
*/
|
||||||
magic_api *api = (magic_api *) pointer;
|
magic_api *api = (magic_api *) pekare;
|
||||||
int xx, yy;
|
int xx, yy;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -624,8 +624,8 @@ void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
||||||
fungerar som en 1x1 pixel-pensel.
|
fungerar som en 1x1 pixel-pensel.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
api->putpixel(canvas, x, y,
|
api->putpixel(malarduk, x, y,
|
||||||
SDL_MapRGB(canvas->format,
|
SDL_MapRGB(malarduk->format,
|
||||||
example_r, example_g, example_b));
|
example_r, example_g, example_b));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -647,7 +647,7 @@ void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
||||||
{
|
{
|
||||||
for (xx = -example_storlek; xx < example_storlek; xx++)
|
for (xx = -example_storlek; xx < example_storlek; xx++)
|
||||||
{
|
{
|
||||||
api->putpixel(canvas, x + xx, y + yy,
|
api->putpixel(malarduk, x + xx, y + yy,
|
||||||
api->getpixel(ogonblicksbild,
|
api->getpixel(ogonblicksbild,
|
||||||
ogonblicksbild->w - x - xx,
|
ogonblicksbild->w - x - xx,
|
||||||
ogonblicksbild->h - y - yy));
|
ogonblicksbild->h - y - yy));
|
||||||
|
|
@ -684,7 +684,8 @@ läget).
|
||||||
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
||||||
Magic-verktyg, så vi gör ingenting här.
|
Magic-verktyg, så vi gör ingenting här.
|
||||||
*/
|
*/
|
||||||
void example_switchin(magic_api *api, int som, int lage, SDL_Surface *canvas)
|
void example_switchin(magic_api *api, int som, int mode,
|
||||||
|
SDL_Surface *malarduk)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -707,6 +708,7 @@ anrop till 'example_switchin()', ovan, för det nya läget).
|
||||||
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
||||||
Magic-verktyg, så vi gör ingenting här.
|
Magic-verktyg, så vi gör ingenting här.
|
||||||
*/
|
*/
|
||||||
void example_switchout(magic_api *api, int som, int lage, SDL_Surface *canvas)
|
void example_switchout(magic_api *api, int som, int mode,
|
||||||
|
SDL_Surface *malarduk)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/* tp_magic_example.c
|
/* tp_magic_example.c
|
||||||
|
|
||||||
Ett exempel på ett "Magic"-verktygsplugin för Rita med Tux
|
Ett exempel på ett "Magi"-verktygstillägg för Rita med Tux
|
||||||
maj 10, 2024
|
maj 10, 2024
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
#include <string.h> // För "strdup()"
|
#include <string.h> // För "strdup()"
|
||||||
#include <libintl.h> // För "gettext()"
|
#include <libintl.h> // För "gettext()"
|
||||||
|
|
||||||
#include "tp_magic_api.h" // Tux Paint "Magic" tool API header
|
#include "tp_magic_api.h" // Tux Paint "Magic" verktyg API-huvud
|
||||||
#include "SDL_image.h" // För IMG_Load(), för att ladda vår PNG-ikon
|
#include "SDL_image.h" // För IMG_Load(), för att ladda vår PNG-ikon
|
||||||
#include "SDL_mixer.h" // För Mix_LoadWAV(), för att ladda våra ljudeffekter
|
#include "SDL_mixer.h" // För Mix_LoadWAV(), för att ladda våra ljudeffekter
|
||||||
|
|
||||||
|
|
@ -55,8 +55,8 @@ andra språk.
|
||||||
/* En lista med namn för verktygen */
|
/* En lista med namn för verktygen */
|
||||||
|
|
||||||
const char *verktygsnamn[NUM_TOOLS] = {
|
const char *verktygsnamn[NUM_TOOLS] = {
|
||||||
gettext_noop("A tool"),
|
gettext_noop("Ett verktyg"),
|
||||||
gettext_noop("Another tool")
|
gettext_noop("Ett annat verktyg")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -77,10 +77,10 @@ const char *tool_descriptions[NUM_TOOLS] = {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Our global variables: */
|
/* Våra globala variabler: */
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* Sound effects: */
|
/* Ljudeffekter: */
|
||||||
Mix_Chunk *sound_effects[NUM_TOOLS];
|
Mix_Chunk *sound_effects[NUM_TOOLS];
|
||||||
|
|
||||||
/* Den aktuella färgen (ett "RGB"-värde (röd, grön, blå) som användaren
|
/* Den aktuella färgen (ett "RGB"-värde (röd, grön, blå) som användaren
|
||||||
|
|
@ -95,17 +95,17 @@ Uint8 example_storlek;
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Dessa funktioner anropas av andra funktioner inom vårt plugin, så vi
|
Dessa funktioner anropas av andra funktioner inom vårt tillägg, så vi
|
||||||
tillhandahåller en "prototyp" av dem, så att kompilatorn vet vad de
|
tillhandahåller en "prototyp" av dem, så att kompilatorn vet vad de
|
||||||
accepterar och returnerar. Detta gör att vi kan använda dem i andra
|
accepterar och returnerar. Detta gör att vi kan använda dem i andra
|
||||||
funktioner som deklareras _före_ dem.
|
funktioner som deklareras _före_ dem.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void example_drag(magic_api * api, int som, SDL_Surface * canvas,
|
void example_drag(magic_api * api, int som, SDL_Surface * malarduk,
|
||||||
SDL_Surface * ogonblicksbild, int gammal_x, int gammal_y,
|
SDL_Surface * ogonblicksbild, int gammal_x, int gammal_y,
|
||||||
int x, int y, SDL_Rect * uppdatering_rect);
|
int x, int y, SDL_Rect * uppdatering_rect);
|
||||||
|
|
||||||
void example_line_callback(void *pointer, int som, SDL_Surface * canvas,
|
void example_line_callback(void *pekare, int som, SDL_Surface * malarduk,
|
||||||
SDL_Surface * ogonblicksbild, int x, int y);
|
SDL_Surface * ogonblicksbild, int x, int y);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -116,8 +116,8 @@ void example_line_callback(void *pointer, int som, SDL_Surface * canvas,
|
||||||
Kontroll av API-version
|
Kontroll av API-version
|
||||||
|
|
||||||
Den löpande kopian av Rita med Tux som har laddat oss frågar oss först
|
Den löpande kopian av Rita med Tux som har laddat oss frågar oss först
|
||||||
vilken version av Rita med Tux 'Magic' tool plugin API vi byggdes mot. Om
|
vilken version av Rita med Tux 'Magi' verktygstilläggs-API vi byggdes mot.
|
||||||
det anser att vi är kompatibla kommer vi att användas!
|
Om det anser att vi är kompatibla kommer vi att användas!
|
||||||
|
|
||||||
Allt vi behöver göra här är att returnera "TP_MAGIC_API_VERSION", som
|
Allt vi behöver göra här är att returnera "TP_MAGIC_API_VERSION", som
|
||||||
definieras (#define) i headerfilen "tp_magic_api.h".
|
definieras (#define) i headerfilen "tp_magic_api.h".
|
||||||
|
|
@ -132,7 +132,7 @@ Uint32 example_api_version(void)
|
||||||
/*
|
/*
|
||||||
Initiering av Samhain
|
Initiering av Samhain
|
||||||
|
|
||||||
Detta händer en gång, när Rita med Tux startar och laddar alla plugins
|
Detta händer en gång, när Rita med Tux startar och laddar alla tillägg
|
||||||
för "Magic"-verktyget. (Förutsatt att det vi fick tillbaka från
|
för "Magic"-verktyget. (Förutsatt att det vi fick tillbaka från
|
||||||
api_version var acceptabelt!)
|
api_version var acceptabelt!)
|
||||||
|
|
||||||
|
|
@ -159,7 +159,7 @@ int example_init(magic_api *api, Uint8 inaktiverade_funktioner,
|
||||||
|
|
||||||
Använd "api->data_directory" för att ta reda på var våra ljud ska vara.
|
Använd "api->data_directory" för att ta reda på var våra ljud ska vara.
|
||||||
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
||||||
vi installerade vårt plugin och dess data)
|
vi installerade vårt tillägg och dess data)
|
||||||
*/
|
*/
|
||||||
snprintf(filnamn, sizeof(filnamn), "%ssounds/magic/%s",
|
snprintf(filnamn, sizeof(filnamn), "%ssounds/magic/%s",
|
||||||
api->data_directory, ljud_filnamn[i]);
|
api->data_directory, ljud_filnamn[i]);
|
||||||
|
|
@ -195,8 +195,8 @@ int example_get_tool_count(magic_api *api)
|
||||||
/*
|
/*
|
||||||
Ladda våra ikoner
|
Ladda våra ikoner
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att
|
||||||
tillhandahålla ikoner för verktygsknapparna "Magic".
|
tillhandahålla ikoner för verktygsknapparna "Magi".
|
||||||
*/
|
*/
|
||||||
SDL_Surface *example_get_icon(magic_api *api, int som)
|
SDL_Surface *example_get_icon(magic_api *api, int som)
|
||||||
{
|
{
|
||||||
|
|
@ -208,7 +208,7 @@ SDL_Surface *example_get_icon(magic_api *api, int som)
|
||||||
|
|
||||||
Använd "api->data_directory" för att räkna ut var våra ljud ska vara.
|
Använd "api->data_directory" för att räkna ut var våra ljud ska vara.
|
||||||
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
(Kommandot "tp-magic-config --dataprefix" skulle ha berättat för oss när
|
||||||
vi installerade vårt plugin och dess data)
|
vi installerade vårt tillägg och dess data)
|
||||||
|
|
||||||
Vi använder "som" (vilket av våra verktyg som Rita med Tux frågar om)
|
Vi använder "som" (vilket av våra verktyg som Rita med Tux frågar om)
|
||||||
som ett index i matrisen.
|
som ett index i matrisen.
|
||||||
|
|
@ -227,7 +227,7 @@ SDL_Surface *example_get_icon(magic_api *api, int som)
|
||||||
/*
|
/*
|
||||||
Rapportera våra namn på "Magic"-verktyg
|
Rapportera våra namn på "Magic"-verktyg
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att ange
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att ange
|
||||||
namn (etiketter) för verktygsknapparna "Magic".
|
namn (etiketter) för verktygsknapparna "Magic".
|
||||||
*/
|
*/
|
||||||
char *example_get_name(magic_api *api, int som)
|
char *example_get_name(magic_api *api, int som)
|
||||||
|
|
@ -265,7 +265,7 @@ char *example_get_name(magic_api *api, int som)
|
||||||
/*
|
/*
|
||||||
Rapportera våra "magiska" verktygsgrupper
|
Rapportera våra "magiska" verktygsgrupper
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att ange
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att ange
|
||||||
var verktyget ska grupperas.
|
var verktyget ska grupperas.
|
||||||
*/
|
*/
|
||||||
int example_get_group(magic_api *api, int som)
|
int example_get_group(magic_api *api, int som)
|
||||||
|
|
@ -298,10 +298,10 @@ int *example_get_order(int som)
|
||||||
/*
|
/*
|
||||||
Rapportera våra beskrivningar av "Magic"-verktyget
|
Rapportera våra beskrivningar av "Magic"-verktyget
|
||||||
|
|
||||||
När Rita med Tux startar upp och laddar in plugins ber den oss att ge
|
När Rita med Tux startar upp och laddar in tillägg ber den oss att ge
|
||||||
beskrivningar av varje "Magic"-verktyg.
|
beskrivningar av varje "Magi"-verktyg.
|
||||||
*/
|
*/
|
||||||
char *example_get_description(magic_api *api, int som, int lage)
|
char *example_get_description(magic_api *api, int som, int mode)
|
||||||
{
|
{
|
||||||
const char *var_desc_engelska;
|
const char *var_desc_engelska;
|
||||||
const char *var_beskrivning_lokaliserad;
|
const char *var_beskrivning_lokaliserad;
|
||||||
|
|
@ -361,7 +361,7 @@ int example_modes(magic_api *api, int som)
|
||||||
|
|
||||||
// Rapportera om verktygen erbjuder storleksalternativ
|
// Rapportera om verktygen erbjuder storleksalternativ
|
||||||
|
|
||||||
Uint8 example_accepted_sizes(magic_api *api, int som, int lage)
|
Uint8 example_accepted_sizes(magic_api *api, int som, int mode)
|
||||||
{
|
{
|
||||||
if (som == VERKTYG_ONE)
|
if (som == VERKTYG_ONE)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -372,7 +372,7 @@ Uint8 example_accepted_sizes(magic_api *api, int som, int lage)
|
||||||
|
|
||||||
// Återgå till vårt standardstorleksalternativ
|
// Återgå till vårt standardstorleksalternativ
|
||||||
|
|
||||||
Uint8 example_default_size(magic_api *api, int som, int lage)
|
Uint8 example_default_size(magic_api *api, int som, int mode)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -382,7 +382,7 @@ Uint8 example_default_size(magic_api *api, int som, int lage)
|
||||||
Stäng av
|
Stäng av
|
||||||
|
|
||||||
Rita med Tux håller på att avslutas. När programmet avslutas ber det
|
Rita med Tux håller på att avslutas. När programmet avslutas ber det
|
||||||
alla plugins att "städa upp" efter sig själva. Vi laddade till exempel
|
alla tillägg att "städa upp" efter sig själva. Vi laddade till exempel
|
||||||
några ljudeffekter vid start (i vår funktion example_init()), så vi bör
|
några ljudeffekter vid start (i vår funktion example_init()), så vi bör
|
||||||
frigöra det minne som används av dem nu.
|
frigöra det minne som används av dem nu.
|
||||||
*/
|
*/
|
||||||
|
|
@ -405,9 +405,9 @@ void example_shutdown(magic_api *api)
|
||||||
/* Påverkar duken vid klick: */
|
/* Påverkar duken vid klick: */
|
||||||
|
|
||||||
void
|
void
|
||||||
example_click(magic_api *api, int som, int lage,
|
example_click(magic_api *api, int som, int mode,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, int x, int y,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild, int x,
|
||||||
SDL_Rect *uppdatering_rect)
|
int y, SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
I vårt fall är ett enda klick (som också är början på en dragning!)
|
I vårt fall är ett enda klick (som också är början på en dragning!)
|
||||||
|
|
@ -418,7 +418,7 @@ example_click(magic_api *api, int som, int lage,
|
||||||
med (x,y) för både start- och slutpunkterna för en linje.
|
med (x,y) för både start- och slutpunkterna för en linje.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
example_drag(api, som, canvas, ogonblicksbild, x, y, x, y,
|
example_drag(api, som, malarduk, ogonblicksbild, x, y, x, y,
|
||||||
uppdatering_rect);
|
uppdatering_rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -426,7 +426,7 @@ example_click(magic_api *api, int som, int lage,
|
||||||
/* Påverkar duken vid dragning: */
|
/* Påverkar duken vid dragning: */
|
||||||
void
|
void
|
||||||
example_drag(magic_api *api, int som,
|
example_drag(magic_api *api, int som,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild,
|
||||||
int gammal_x, int gammal_y, int x, int y,
|
int gammal_x, int gammal_y, int x, int y,
|
||||||
SDL_Rect *uppdatering_rect)
|
SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
|
|
@ -441,12 +441,12 @@ example_drag(magic_api *api, int som,
|
||||||
ögonblicksbildsdukarna).
|
ögonblicksbildsdukarna).
|
||||||
*/
|
*/
|
||||||
SDL_LockSurface(ogonblicksbild);
|
SDL_LockSurface(ogonblicksbild);
|
||||||
SDL_LockSurface(canvas);
|
SDL_LockSurface(malarduk);
|
||||||
|
|
||||||
api->line((void *) api, som, canvas, ogonblicksbild,
|
api->line((void *) api, som, malarduk, ogonblicksbild,
|
||||||
gammal_x, gammal_y, x, y, 1, example_line_callback);
|
gammal_x, gammal_y, x, y, 1, example_line_callback);
|
||||||
|
|
||||||
SDL_UnlockSurface(canvas);
|
SDL_UnlockSurface(malarduk);
|
||||||
SDL_UnlockSurface(ogonblicksbild);
|
SDL_UnlockSurface(ogonblicksbild);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -505,7 +505,7 @@ example_drag(magic_api *api, int som,
|
||||||
kommer att panorera från högtalare till högtalare när du drar musen
|
kommer att panorera från högtalare till högtalare när du drar musen
|
||||||
runt på duken!)
|
runt på duken!)
|
||||||
*/
|
*/
|
||||||
api->playsound(sound_effects[som], (x * 255) / canvas->w, /* Vänster/höger panorering */
|
api->playsound(sound_effects[som], (x * 255) / malarduk->w, /* Vänster/höger panorering */
|
||||||
255 /* Nära/långt avstånd (loudness) */ );
|
255 /* Nära/långt avstånd (loudness) */ );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -514,7 +514,7 @@ example_drag(magic_api *api, int som,
|
||||||
|
|
||||||
void
|
void
|
||||||
example_release(magic_api *api, int som,
|
example_release(magic_api *api, int som,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild, int x,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild, int x,
|
||||||
int y, SDL_Rect *uppdatering_rect)
|
int y, SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
@ -525,7 +525,7 @@ example_release(magic_api *api, int som,
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Accept colors
|
Acceptera färger
|
||||||
|
|
||||||
När något av våra "Magic"-verktyg aktiveras av användaren, om verktyget
|
När något av våra "Magic"-verktyg aktiveras av användaren, om verktyget
|
||||||
accepterar färger, skickas det aktuella färgvalet till oss.
|
accepterar färger, skickas det aktuella färgvalet till oss.
|
||||||
|
|
@ -536,7 +536,7 @@ Om något av våra färgaccepterande verktyg är aktivt när användaren
|
||||||
Färgen anges som RGB-värden (rött, grönt och blått) från 0 (mörkast)
|
Färgen anges som RGB-värden (rött, grönt och blått) från 0 (mörkast)
|
||||||
till 255 (ljusast).
|
till 255 (ljusast).
|
||||||
*/
|
*/
|
||||||
void example_set_color(magic_api *api, int which, SDL_Surface *canvas,
|
void example_set_color(magic_api *api, int which, SDL_Surface *malarduk,
|
||||||
SDL_Surface *ogonblicksbild, Uint8 r, Uint8 g, Uint8 b,
|
SDL_Surface *ogonblicksbild, Uint8 r, Uint8 g, Uint8 b,
|
||||||
SDL_Rect *uppdatering_rect)
|
SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
|
|
@ -565,7 +565,7 @@ värde som returneras av vår example_accepted_sizes()-funktion under
|
||||||
installationen.
|
installationen.
|
||||||
*/
|
*/
|
||||||
void example_set_size(magic_api *api, int which, int mode,
|
void example_set_size(magic_api *api, int which, int mode,
|
||||||
SDL_Surface *canvas, SDL_Surface *ogonblicksbild,
|
SDL_Surface *malarduk, SDL_Surface *ogonblicksbild,
|
||||||
Uint8 storlek, SDL_Rect *uppdatering_rect)
|
Uint8 storlek, SDL_Rect *uppdatering_rect)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
@ -583,18 +583,18 @@ void example_set_size(magic_api *api, int which, int mode,
|
||||||
/*
|
/*
|
||||||
Vår "callback"-funktion
|
Vår "callback"-funktion
|
||||||
|
|
||||||
Vi gör "arbetet" i denna återuppringning. Vår plugin-fil har bara en.
|
Vi gör "arbetet" i denna återuppringning. Vår tilläggsfil har bara en.
|
||||||
Vissa plugins för "magiska" verktyg kan ha fler, beroende på vilka
|
Vissa tillägg för "magiska" verktyg kan ha fler, beroende på vilka
|
||||||
verktyg de tillhandahåller. Vissa har inga (eftersom de inte är
|
verktyg de tillhandahåller. Vissa har inga (eftersom de inte är
|
||||||
klick-och-drag-verktyg i målningsstil).
|
klick-och-drag-verktyg i målningsstil).
|
||||||
|
|
||||||
Vår callback-funktion anropas en gång för varje punkt längs en linje
|
Vår callback-funktion anropas en gång för varje punkt längs en linje
|
||||||
mellan musens föregående och nuvarande position, när den dras.
|
mellan musens föregående och nuvarande position, när den dras.
|
||||||
|
|
||||||
Vår callback uppmärksammar 'som' för att avgöra vilket av pluginets
|
Vår callback uppmärksammar 'som' för att avgöra vilket av
|
||||||
verktyg som för närvarande är valt.
|
tilläggsverktyg som för närvarande är valt.
|
||||||
*/
|
*/
|
||||||
void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
void example_line_callback(void *pekare, int som, SDL_Surface *malarduk,
|
||||||
SDL_Surface *ogonblicksbild, int x, int y)
|
SDL_Surface *ogonblicksbild, int x, int y)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
|
@ -608,7 +608,7 @@ void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
||||||
"(magic_api *)" nedan kastar den generiska "void *"-pekaren till den
|
"(magic_api *)" nedan kastar den generiska "void *"-pekaren till den
|
||||||
"typ" av pekare vi vill ha, en pekare till en "magic_api"-struktur)
|
"typ" av pekare vi vill ha, en pekare till en "magic_api"-struktur)
|
||||||
*/
|
*/
|
||||||
magic_api *api = (magic_api *) pointer;
|
magic_api *api = (magic_api *) pekare;
|
||||||
int xx, yy;
|
int xx, yy;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -624,8 +624,8 @@ void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
||||||
fungerar som en 1x1 pixel-pensel.
|
fungerar som en 1x1 pixel-pensel.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
api->putpixel(canvas, x, y,
|
api->putpixel(malarduk, x, y,
|
||||||
SDL_MapRGB(canvas->format,
|
SDL_MapRGB(malarduk->format,
|
||||||
example_r, example_g, example_b));
|
example_r, example_g, example_b));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -647,7 +647,7 @@ void example_line_callback(void *pointer, int som, SDL_Surface *canvas,
|
||||||
{
|
{
|
||||||
for (xx = -example_storlek; xx < example_storlek; xx++)
|
for (xx = -example_storlek; xx < example_storlek; xx++)
|
||||||
{
|
{
|
||||||
api->putpixel(canvas, x + xx, y + yy,
|
api->putpixel(malarduk, x + xx, y + yy,
|
||||||
api->getpixel(ogonblicksbild,
|
api->getpixel(ogonblicksbild,
|
||||||
ogonblicksbild->w - x - xx,
|
ogonblicksbild->w - x - xx,
|
||||||
ogonblicksbild->h - y - yy));
|
ogonblicksbild->h - y - yy));
|
||||||
|
|
@ -684,7 +684,8 @@ läget).
|
||||||
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
||||||
Magic-verktyg, så vi gör ingenting här.
|
Magic-verktyg, så vi gör ingenting här.
|
||||||
*/
|
*/
|
||||||
void example_switchin(magic_api *api, int som, int lage, SDL_Surface *canvas)
|
void example_switchin(magic_api *api, int som, int mode,
|
||||||
|
SDL_Surface *malarduk)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -707,6 +708,7 @@ anrop till 'example_switchin()', ovan, för det nya läget).
|
||||||
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
Vårt exempel gör ingenting när vi byter till, eller från, våra
|
||||||
Magic-verktyg, så vi gör ingenting här.
|
Magic-verktyg, så vi gör ingenting här.
|
||||||
*/
|
*/
|
||||||
void example_switchout(magic_api *api, int som, int lage, SDL_Surface *canvas)
|
void example_switchout(magic_api *api, int som, int mode,
|
||||||
|
SDL_Surface *malarduk)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
src/po/sv.po
13
src/po/sv.po
|
|
@ -11,7 +11,7 @@ msgstr ""
|
||||||
"Project-Id-Version: tuxpaint\n"
|
"Project-Id-Version: tuxpaint\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-06-08 11:15-0700\n"
|
"POT-Creation-Date: 2025-06-08 11:15-0700\n"
|
||||||
"PO-Revision-Date: 2025-04-20 19:06+0200\n"
|
"PO-Revision-Date: 2025-09-28 10:52+0200\n"
|
||||||
"Last-Translator: Daniel Nylander <github@danielnylander.se>\n"
|
"Last-Translator: Daniel Nylander <github@danielnylander.se>\n"
|
||||||
"Language-Team: Svenska <debian-l10n-swedish@lists.debian.org>\n"
|
"Language-Team: Svenska <debian-l10n-swedish@lists.debian.org>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
|
|
@ -19,7 +19,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||||
"X-Generator: Poedit 3.6\n"
|
"X-Generator: Poedit 3.7\n"
|
||||||
|
|
||||||
#. Response to Black (0, 0, 0) color selected
|
#. Response to Black (0, 0, 0) color selected
|
||||||
#: ../colors.h:86
|
#: ../colors.h:86
|
||||||
|
|
@ -393,11 +393,11 @@ msgstr ""
|
||||||
|
|
||||||
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:52
|
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:52
|
||||||
msgid "Documentation improvements"
|
msgid "Documentation improvements"
|
||||||
msgstr ""
|
msgstr "Dokumentationsförbättringar"
|
||||||
|
|
||||||
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:53
|
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:53
|
||||||
msgid "Bug fixes"
|
msgid "Bug fixes"
|
||||||
msgstr ""
|
msgstr "Buggfixar"
|
||||||
|
|
||||||
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:58
|
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:58
|
||||||
msgid "New Magic tools: \"Hearts\", \"Sparkles\", and \"Stars\"."
|
msgid "New Magic tools: \"Hearts\", \"Sparkles\", and \"Stars\"."
|
||||||
|
|
@ -487,8 +487,9 @@ msgid ""
|
||||||
"Name of files created by Open>Export and Open>Slideshow>Export GIF "
|
"Name of files created by Open>Export and Open>Slideshow>Export GIF "
|
||||||
"are now displayed as well as placed in copy/paste clipboard."
|
"are now displayed as well as placed in copy/paste clipboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Namnet på filer som skapats av Öppna>Exportera och Öppna>Bildspel>"
|
"Namnet på filer som skapats av Öppna>Exportera och "
|
||||||
"Exportera GIF visas nu och placeras i urklipp för kopiera/klistra in."
|
"Öppna>Bildspel>Exportera GIF visas nu och placeras i urklipp för "
|
||||||
|
"kopiera/klistra in."
|
||||||
|
|
||||||
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:82
|
#: ../org.tuxpaint.Tuxpaint.appdata.xml.in:82
|
||||||
msgid "Localization updates."
|
msgid "Localization updates."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue