home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d524
/
snap.lha
/
Snap
/
swedish.doc
< prev
next >
Wrap
Text File
|
1991-08-05
|
23KB
|
666 lines
Snap 1.61
=========
© Mikael Karlsson 1991
Är Snap Public Domain?
Snap är INTE Public Domain. Snap är 'Fritt distribuerbar
upphovsrättsskyddad programvara med ShareWare-tillägg'.
"Tillstånd ges härmed att kopiera Snap förutsatt att
upphovsrättstexten samt detta dokument lämnas intakta.
Kopior får ej göras i vinstsyfte. Modifierade kopior
får inte distribueras utan författarens medgivande."
Jag vet inte om det håller i en domstol men vad jag vill
ha sagt är: Kopiera Snap om du vill men tjäna inte några
pengar på det. Det är givetvis tillåtet att ha med Snap
på Public Domain-diskar och att ladda upp det på en BBS.
Om du tycker att Snap är användbart så får du gärna skicka
en donation (65 kr låter bra) eller ett trevligt program (PD).
Om du vill inkludera Snap med en kommersiell produkt så
kontakta mig först. Jag vill vara säker på att mitt ego
klarar av det. Det skulle också vara trevligt med en
registrerad kopia av produkten.
Vad är det?
Snap är det perfekta verktyget för den lata användaren.
Visst är det irriterande när man tittar på något på
skärmen och tänker: "Det där skall jag skriva."?
Tänk om man bara kunde peka på det och få datorn att
skriva det åt dig. Det är precis vad Snap gör.
En annan sak som irriterar mig är att jag sitter framför
Datorn med stort D och jag måste ändå ha papper och
penna tillgängligt för att skriva av något från skärmen
som jag vet att jag kommer att behöva senare. Snap
tillhandahåller även en lösning på det problemet. Det
är bara att rama in det du behöver så öppnar Snap ett
fönster med en kopia av skärminnehållet. Perfekt att
"snappa" text från senare.
Första gången
För att testa Snap, gör följande:
1. Dubbelklicka Snap-ikonen.
2. Flytta pilen till ett tecken.
3. Håll ner vänster Amiga-tangent.
4. Tryck vänster musknapp. En ram skall visas runt tecknet
du pekar på. Om ingen ram visas, släpp musknappen och
vänster Amiga-tangent och börja om från steg 2.
5. Utöka valet med musen.
6. När du är nöjd med valet, släpp först musknappen sedan
Amiga-tangenten.
7. Du kan nu mata in texten genom att hålla ner vänster
Amiga-tangent och klicka höger musknapp.
Varför använda Snap istället?
a. Snap söker upp teckenkoordinater automatiskt.
b. Snap använder RastPortens aktuella font, inte bara Topaz 8.
c. Snap är skrivet av mig.
d. Snap understödjer all fix-bredd-fonter med bredd <16.
e. Snap understödjer ascii 128-255.
f. Snap understödjer keymappar.
g. Snap hanterar både kolumn- och text-orienterad snappning.
h. Snap snappar grafik.
i. Snap använder clipboard för kompatibilitet med TxED (och NotePad).
j. Snap klarar inverterade tecken.
k. Snap klarar tecken i fetstil.
l. Snap klarar understrukna tecken.
m. Snap har ord-orienterad snappning.
n. Snap har myror.
o. Snap har en tangentkombination för att sätta in tecken.
p. Snap understödjer snappning i Xerox-stil med direkt insättning.
q. Snap understödjer extratecken före och efter rader.
r. Snap sparar grafik.
s. Snap minns teckenkoordinater mellan fönster.
t. Snap slår ihop långa rader.
u. Snap understödjer ARexx för "förtecken" och "eftertecken".
v. Snap klarar en extra pixel-rad mellan teckenrader.
w. Snap understödjer en alternativ font för snappning.
x. Snap understödjer fonter med valfri höjd, ställbart vid kompilering.
y. Snap minns fonter mellan fönster.
z. Snap klipper grafik till clipboard.
w. Snap understödjer Workbench-argument.
Start och stopp
Från CLI
Starta Snap med 'run >nil: snap'.
Snap stängs av med 'snap -Q' (eller snap QUIT).
Från Workbench
Dubbelklicka på Snap-ikonen för att starta Snap.
Dubbelklicka igen för att stänga av.
Se till att filen "clipboard.device" finns i devs:.
Lägg märke till att Snap inte kan avslutas om du har
några snappade fönster öppna.
CLI
Snap accepterar ett antal argument på kommandoraden.
Du kan använda antingen Unix- eller Amiga-stil på
argumenten.
Usage:
snap -pNN -tQQ -gQQ -iXX -wXX -Pstr -Astr -cNN -lNN
-aXXXX -x -X -e -E -r -R -j -J -s -S -uN -bXX -CNN
-BNN -Ffont -Q
or
snap PRIORITY/k TEXTQUAL/k GFXQUAL/k INSERTKEY/k CWKEY/k
PREPEND/k APPEND/k CHARDELAY/k LINEDELAY/k CRAWLPTRN/k
XEROX/s NOXEROX/s EARLYPATCH/s NOEARLYPATCH/s STARTUNIT/k
TRUEUNDERSCORE/s FAKEUNDERSCORE/s JOINLONG/s NOJOINLONG/s
SIMPLEREFRESH/s SMARTREFRESH/s PLANEMASK/k CACHESIZE/k
BADCHAR/s ALTFONT/k QUIT/s
o XX är hex. Anges som 0xXXXX.
Exempel: 0xF3
o NN är decimalt.
o str är en sträng.
o QQ är tangentbords-"kvalificerare". QQ kan specificeras antingen
som hex från följande lista:
0001 Vänster skift
0002 Höger skift
0008 Control
0010 Vänster alt
0020 Höger alt
0040 Vänster Amiga-tangent
0080 Höger Amiga-tangent
1000 Mittersta musknappen
Exempel: 0x18 ger Vänster alt+Control
Eller som en kombination av följande strängar (avskiljda
med '+'):
LSHIFT Vänster skift
RSHIFT Höger skift
CONTROL Control
LALT Vänster alt
RALT Höger alt
LCOMMAND Vänster Amiga-tangent
RCOMMAND Höger Amiga-tangent
MIDBUTTON Mittersta musknappen
Exempel: LALT+CONTROL ger Vänster alt+Control
Kombinationer är tillåtna och innebär att ALLA angivna "kvalificerare"
måste användas.
o font är namnet på ett typsnitt, angett som 'namn/storlek'.
Exempel: Topaz/8
-pNN
PRIORITY NN
där NN är prioritet för "input handlern". Default
är 51. Prioriteten kan inte ändras medan Snap är
installerat.
-tQQ
TEXTQUAL QQ
där QQ är den kvalificerare som används vid
textoperationer. Default är vänster Amiga-tangent.
-gQQ
GFXQUAL QQ
där QQ är den kvalificerare som används vid
grafikoperationer. Default är höger Amiga-tangent.
-iXX
INSERTKEY XX
där XX är tangentkoden för den tangent som används
tillsammans med vänster Amiga-tangent som insättnings-
tangent. Användes tillsammans med skift-tangenten
för modifierade insättningar. Ange 0 för att stänga
av. Default är hex 17 ("I").
-wXX
CWKEY XX
där XX är tangentkoden för den tangent som används
tillsammans med vänster Amiga-tangent för att öppna
kontrollfönstret. Default är hex 11 ("W").
-Pstr
PREPEND str
där str är den teckensekvens som läggs till i
början på varje rad vid modifierad insättning.
Maxlängd är 16 tecken. Default är "> ".
-Astr
APPEND str
där str är den teckensekvens som läggs till i
slutet på varje rad vid modifierad insättning.
Maxlängd är 16 tecken. Default är "".
-cNN
CHARDELAY NN
där NN är den tid som Snap väntar mellan varje
tecken vid insättning. Default är 0.
-lNN
LINEDELAY NN
där NN är den tid som Snap väntar efter varje
radslut vid insättning. Default är 0.
-aXXXX
CRAWLPTRN XXXX
där XXXX är ett 16 bitars tal som anger mönstret
för de krypande myrorna. Använd FFFF för att stänga
av krypandet. Om du anger 0 som mönster så kommer
Snap att använda olika mönster för varje snap-typ
(ruta/tecken/ord/rad). Default är 7777.
-x
XEROX
säger till Snap att använda snappning av Xerox-typ.
Den snappade texten sätts in direkt efter att den
snappats.
-X
NOXEROX
stänger av Xerox-snappning.
-e
EARLYPATCH
säger till Snap att stänga av vissa funktioner
direkt när text-kvalificeraren trycks ner. Detta
sker automatiskt vid snappning av Xerox-typ.
-E
NOEARLYPATCH
stänger av EARLYPATCH. Detta är default.
-j
JOINLONG
säger till Snap att slå ihop långa rader. Detta
innebär att Snap tar bort vagnreturen mellan två
rader om den första av dessa rader INTE har ett
mellanslag i sista positionen. Detta görs inte
vid rektangulär snappning.
-J
NOJOINLONG
stänger av JOINLONG. Detta är default.
-s
SMARTREFRESH
säger till Snap att använda SMARTREFRESH för
snappade grafikfönster. Detta är snabbare men
förbrukar mycket chip-minne. Detta är default.
-S
SIMPLEREFRESH
säger till Snap att använda SIMPLEREFRESH för
snappade grafikfönster. Detta sparar chip-minne
en omritningen av Snap-fönster går långsammare
än med SMARTREFRESH.
-uN
STARTUNIT N
talar om för Snap vilken enhet som skall användas
då du börjar snappa.
0 är rektangulär snappning.
1 är teckensnappning.
Default är 0.
-r
TRUEUNDERSCORE
säger till Snap att göra äkta kontroll av under-
strykning vid snappning.
-R
FAKEUNDERSCORE
stänger av TRUEUNDERSCORE. Istället skippar Snap
understrykningsraden och hoppas att resten av
tecknet skall ge korrekt matchning. Denna möjlighet
finns eftersom det finns en bug i understryknings-
rutinen.
-bXX
PLANEMASK XX
där XX är en mask som anger vilka bitplan som ramen
skall ritas i vid textsnappning. Detta påverkar inte
grafiksnappningen. Default är 1.
-CNN
CACHESIZE NN
där NN är det antal fönster som Snap sparar tecken-
koordinater för. Om du anger ett nytt värde då Snap
är installerat så ökas det tidigare antalet med NN.
Default storlek är 10, default ökning är 0.
-LNN
LEADING NN
där NN anger det extra antal pixlar i rad-mellanrummet
som Snap skall tillåta. Default är 1.
-BNN
BADCHAR NN
där NN är ascii-värdet för det tecken som Snap
använder då ett tecken inte känns igen.
Default är 63, ett '?'.
-Ffont
ALTFONT font
där font anger en alternativ font som provas om
Snap inte kan hitta något tecken i den font som
anges av fönstrets RastPort. Vissa program (tex
CygnusEd 2.0) använder inte RastPort:ens font
för att skriva text. Fonten anges 'Namn/storlek',
tex 'Topaz/8'.
-Q
QUIT
stänger av Snap.
Några användbara tangentkoder:
17 I
34 V
15 Y
Workbench
Snap känner igen följande "tooltypes".
PRIORITY=NN Input handler prioritet
TEXTQUAL=QQ Text-kvalificerare
GFXQUAL=QQ Grafik-kvalificerare
INSERTKEY=XX Inmatningstangent
CWKEY=XX Kontrollfönstertangent
PREPEND=str Förtext
APPEND=str Eftertext
CHARDELAY=NN Teckenpaus
LINEDELAY=NN Linjepaus
CRAWLPTRN=XXXX Rammönster
XEROX Xerox-mode på
NOXEROX Xerox-mode av
EARLYPATCH Early-patch på
NOEARLYPATCH Early-patch av
STARTUNIT=NN Startenhet
TRUEUNDERSCORE Äkta understrykning
FAKEUNDERSCORE Fusk-understrykning
JOINLONG Slå ihop långa rader
NOJOINLONG Slå inte ihop långa rader
SIMPLEREFRESH Simple refresh
SMARTREFRESH Smart refresh
PLANEMASK=XX Bitplansmask
CACHESIZE=NN Cache-storlek
BADCHAR=str Dåligt tecken
ALTFONT=font Alternativt typsnitt
För att ändra tooltype, markera Snap-ikonen och välj 'Information'
(Workbench 2.0) eller 'Info' (Workbench 1.3).
Om du har Workbench 1.2/1.3 måste du lägga till ett '=' till
tooltype, t ex 'JOINLONG' måste specificeras som 'JOINGLONG='.
Modifierad insättning
Modifierad insättning innebär att extra tecken läggs till i
början och i slutet på varje rad. Tecknen i början (förtecknen)
sätts via -P/PREPEND på kommandoraden, tecknen i slutet
(eftertecknen) via -A/APPEND.
Förtecken och eftertecken kan också sättas med hjälp av
ARexx-kommandona
'PREPEND newstring' och
'APPEND newstring'.
Dessa kommando skall adresseras till Snap via ARexx-kommandot
'ADDRESS SNAP'.
Den gamla strängen ges tillbaka i variablen RESULT, förutsatt
att 'OPTIONS RESULTS' angetts.
Om ingen 'newstring' anges så utförs inga ändringar.
Ett litet exempel:
/* Change PREPEND and APPEND strings for my mail answering program */
PARSE ARG ReplyTo
OPTIONS RESULTS
ADDRESS SNAP 'prepend' ReplyTo'>'
oldprepend = RESULT
ADDRESS SNAP 'append' ""
oldappend = RESULT
Väntetider
Väntetider mellan tecken och rader kan behövas eftersom
vissa program inte klarar av att hantera tecken i samma
takt som Snap matar in dem. Väntetiden anges i milli-
sekunder.
Se upp för
EARLYPATCH kan orsaka problem om man använder vänster
Amiga som text-kvalificerare tillsammans med MachII.
Problemet är att MachII inte kan aktivera ett nytt
fönster då man trycker vänster Amiga-M.
Understrukna tecken kan också orsaka problem. I vissa
typsnitt ser understrykningstecknet (_) likadant ut
som ett understruket mellanslag. Snap försöker vara
smart och lyckas oftast få det rätt. Algoritmen som
används är följande:
Ett understrykningstecknet/understruket mellanslag
tolkas som ett understruket mellanslag om det förra
tecknet var understruket. Om inte så tolkas tecknet
som ett understrykningstecken.
Snappning
Snap tillhandahåller två olika sorters snappning:
tecken och grafik. Grafiksnappning innebär helt enkelt
att man kan rama in en bit av skärmen och få den arean
kopierad till ett fönster.
Teckensnappning kan göras på fyra olika sätt:
* rektangulär snappning
* teckenorienterad snappning
* ordorienterad snappning
* radorienterad snappning
Rektangulär snappning gör det möjligt att snappa en
kolumn med text. En vagnretur läggs till efter varje
rad utom den sista.
Radorienterad snappning är i princip samma sak som
rektangulär snappning med det undantag att rektangeln
alltid är lika bred som fönstret man snappar ur.
Teckenorienterad snappning är svårare att förklara än
att använda. Teckenorienterad snappning börjar på ett
tecken, sträcker sig till fönstrets högra kant, fort-
sätter med ett antal hela rader och slutar på ett annat
tecken. Urvalsramen kan se ut såhär:
________________________
__________________| |
| |
| __________________________|
|________________|
eller såhär: _________
_____ |_________|
|_____|
och givetvis såhär: ________________
|________________|
Ordorienterad snappning fungerar på samma sätt som
teckenorienterad snappning förutom att urvalet bara
kan utökas ordvis. Ett ord är icke-blanksteg omgivna
av blanksteg.
Vi definierar några handgrepp som används för att
kontrollera Snap.
KLICK
1. Tryck ner musknappen.
2. Släpp musknappen.
FLYTTA
1. Flytta musen.
FÖRBERED_TEXT
1. Om du använder Xerox-snappning så se till att ditt
målfönster är aktivt.
2. Tryck och håll ner textkvalificeraren.
3. FLYTTA till det första tecken du vill snappa.
FÖRBERED_GRAFIK
1. Tryck och håll ned grafikkvalificeraren.
2. FLYTTA till övre vänstra hörnet i den area du vill kopiera.
UTÖKA
1. FLYTTA
5. (Tryck ned och) släpp musknappen.
AVSLUTA
1. Släpp musknappen.
2. Släpp kvalificeraren.
AVBRYT
1. Släpp kvalificeraren.
2. Släpp musknappen.
Hur man använder dessa handgrepp:
Lägg märke till att detta gäller med startenhet FRAME.
Med startenhet CHAR hoppar Snap över rektangulär snappning
och tar dig direkt till teckenorienterad snappning. För
att komma till rektangulär snappning måste du klicka dig
igenom tecken-, ord- och radorienterad snappning.
Rektangulär snappning:
1. FÖRBERED_TEXT.
2. Tryck vänster musknapp.
3. FLYTTA.
4. UTÖKA tills du är nöjd.
5. AVSLUTA eller AVBRYT.
Teckenorienterad snappning:
1. FÖRBERED_TEXT.
2. KLICKA vänster musknapp.
3. UTÖKA tills du är nöjd.
4. AVSLUTA eller AVBRYT.
Ordorienterad snappning:
1. FÖRBERED_TEXT.
2. Dubbel-KLICKA vänster musknapp.
3. UTÖKA tills du är nöjd.
4. AVSLUTA eller AVBRYT.
Radorienterad snappning:
1. FÖRBERED_TEXT.
2. Trippel-KLICKA vänster musknapp.
3. UTÖKA tills du är nöjd.
4. AVSLUTA eller AVBRYT.
Insättning av snappade tecken:
1. FÖRBERED_TEXT.
2. KLICKA höger musknapp.
eller
1. Tryck och håll ner vänster Amiga-tangent.
2. Tryck insättningstangenten. (Se argument -i/INSERTKEY.)
Modifierad insättning:
1. Tryck och håll ner vänster Amiga-tangent samt valfri skifttangent.
2. Tryck insättningstangenten. (Se argument -i/INSERTKEY.)
Avbrytande av insättning:
1. KLICKA vänster musknapp.
Snappning av grafik:
1. FÖRBERED_GRAFIK.
2. Tryck vänster musknapp.
3. FLYTTA.
4. UTÖKA tills du är nöjd.
5. AVSLUTA eller AVBRYT.
Öppning av kontrollfönstret:
To open the Snap Control Window
1. Tryck och håll ner vänster Amiga-tangent.
2. Tryck kontrollfönstertangenten. (Se argument -w/CWKEY.)
Vid textsnappning går det att gå direkt från snappning
till insättning genom att byta ut "AVSLUTA eller AVBRYT"
ovan med "Släpp vänster musknapp, KLICKA höger musknapp".
Om du använder Xerox-snappning så sker insättning så
snart du AVSLUTAr.
När du väljer snappningsenhet tar ett fjärde klick dig
tillbaka till teckenorienterad snappning. Varje klick
stegar en enhet. Lägg märke till att rektangulär snappning
endast är tillgänglig om du FLYTTAr innan du släpper
musknappen.
Teckensnappning och teckenkoordinater
Du måste alltid inleda snappning på ett tecken annars
kommer inte Snap att få koordinaterna rätt. Detta gäller
alla sorters snappning inklusive radorienterad snappning.
Snap sparar teckenkoordinater för de N senast använda
fönstren där N specificeras med argumentet -C/CACHESIZE.
Då du börjar snappa i ett fönster kollar Snap om koordinater
för detta fönster finns lagrade. Om så är fallet försöker
Snap att hitta ett tecken på de lagrade koordinaterna.
Om det misslyckas går Snap igenom hela uppletningsfasen.
Allt detta är givetvis helt transparent för användaren
så du behöver inte bekymra dig om det.
Denna lagring av koordinater gör det möjligt för Snap
att använda rätt koordinater även om du börjar snappa
på ett blanksteg förutsatt att du snappat i det fönstret
förut.
Blanksteg i slutet på raderna tas bort i tecken-, ord-
och rad-orienterad snappning men inte i rektangulär
snappning.
Snappning och sparande av grafik
Fönster med grafiksnappar öppnas alltid på Workbench-skärmen.
Om du har snappat grafik från en skärm med andra färger än
de på Workbench-skärmen så kan du byta till grafiksnappets
ursprungliga färger genom att hålla ner vänster musknapp i
snap-fönstret.
Grafiksnappar sparas via kontrollfönstret (KF). Nedanför ett
snapfönsters "window-to-front"- och "window-to-back"-knappar
finns en liten knapp som ser ut som en liten diskett.
När du klickar på den händer olika saker beroende på ett
antal villkor.
KF grafikfönster
ej öppet ej valt Öppnar KF, väljer grafikfönstret
öppet ej valt Väljer grafikfönstret
öppet valt Sparar innehållet i grafikfönstret
Kontrollfönstret ser ut ungefär såhär:
_______________________________
|x|Snap_Control_Window________|||
| ____ __________________ |
||Save| as |Name gadget | |
| ~~~~ ~~~~~~~~~~~~~~~~~~ |
| Transparent color |0~~| |
| ~~~ |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Save-knappen kommer att vara skuggad om inget grafikfönster
är valt.
När man klickar på Save-knappen sparas innehållet i grafikfönstret
som en IFF-fil.
"Transparent color"-rutan används för att specificera vilken
färg som skall vara transparent i den sparade IFF-filen.
Namn-rutan används för att specificera namnet på den IFF-fil
som skall sparas. Namn-rutan är en sträng-ruta om req.library
inte är tillgängligt. Om req.library är tillgängligt så är
namn-rutan en knapp som öppnar en "File Requester".
Kompilering
En 'makefile' finns med. Sätt in och/eller tag bort '#'
beroende på vilken kompilator som används.
Några saker att komma ihåg
a. Texten skickas till det aktiva fönstret. Se till att
rätt fönster är aktivt.
b. Stör inte under insättning av text. Eventuella bokstäver
som under insättning kommer att sättas in mitt i den text
som håller på att sättas in.
c. Snap inleder med ett försök att hitta rätt teckenkoordinater.
Därför kommer Snap inte att hitta rätt koordinater om du
börjar snappa på ett mellanslag, förutom om Snap har lagrat
koordinaterna vid en tidigare snappning.
Buggar
Givetvis. Vad trodde du? Vad jag vet så finns det inga
allvarliga buggar. Ett problem är dock att vissa fonteditorer
optimerar teckendata. Resultaten blir att två tecken som
ser likadana ut kan använda samma teckendata viket gör att
Snap inte kan avgöra vilket tecken som skrevs till att börja
med. Detta kan lösas genom att man editerar fonten så att
alla tecken är unika.
Tack till
o Amiga-Lorraine för datorn.
o Radical Eye Software för "minrexx".
o William Hawes för ARexx, WShell, ConMan, etc.
o Marc Boucher för hans ovärderliga hjälp med att göra Snap
kompatibelt med 2.0.
o Björn Knutsson, Dominic Giampaolo, Marc Boucher, Eddy Carroll,
Ismo Suihko, Kent D. Polk, Jonas Petersson och Loren J. Rittle
för testning.
o Alla ni som har skickat eller kommer att skicka kommentarer,
bidrag eller frågor.
s-mail: Mikael Karlsson
Lövsättersvägen 10
S-585 98 LINKÖPING
SWEDEN
e-mail: micke@slaka.sirius.se
micke@slaka.UUCP
{mcvax|munnari|seismo}!sunic!liuida!slaka!micke
Phone: +46-13 50479
+46-431 50623 (på sommaren)