Du kan skapa datatypsdefinitioner på två sätt:
Med verktyget Skapa åtgärd. Skapa åtgärd beskrivs i Kapitel 11.
Manuellt.
När du skapar en datatyp manuellt måste du redigera en databasfil.
I det här kapitlet beskrivs hur du manuellt skapar datatypsdefinitioner i följande avsnitt:
En introduktion till datatyper finns i Kapitel 10.
Mer information om datatypsdefinitioner finns i direkthjälpen (man) för dtddsfile(4).
Med manuellt skapade datatyper kan du använda alla möjligheter som finns inbyggda i datatypsdefinitionernas syntax.
Du måste skapa en datatyp manuellt om du vill kunna använda följande funktionalitet:
Sökvägsbaserade datatyper
Möjlighet att ange andra åtgärder än Open (Öppna) och Print (Skriv ut) som associeras med datatypen
Flera namn-, mönster- eller innehållsvillkor för samma datatyp - exempelvis en datatyp som är baserad på filer som heter *.abc eller *.def
Länkbaserade datatyper
En datatypsdefinition består av två separata databasdefinitioner:
Definitionen av DATA_ATTRIBUTES
beskriver datatypens namn samt utseende och egenskaper hos filer av den här typen.
Definitionen DATA_CRITERIA
beskriver typvillkoren. Varje villkorsdefinition anger vilken DATA_ATTRIBUTES
-definition som villkoret gäller för.
Det måste finnas minst en DATA_CRITERIA
-definition för varje DATA_ATTRIBUTES
-definition. En DATA_ATTRIBUTES
-definition kan ha flera associerade DATA_CRITERIA
.
Du kan t ex skapa en attributdefinition för PostScript-filer som beskriver hur PostScript-filerna ser ut och fungerar i filhanteraren. Sedan kan du skapa två separata villkor för PostScript-datatypen - ett som är baserat på filnamn och ett som är baserat på filinnehåll.
Mer information finns i "Definiera dataattribut för en datatyp".
I det här avsnittet beskrivs hur du skapar en datatypskonfigurationsfil.
Kraven för konfigurationsfiler som innehåller datatypsdefinitioner är:
Filerna måste använda namngivningskonventionen namn.dt
Filerna måste finnas i databassökvägen. Standardsökväg:
Egna datatyper - Hemkatalog/.dt/types
Systemtäckande datatyper - /etc/dt/appconfig/types/språk
Inbyggda datatyper - /usr/dt/appconfig/types/språk. Du bör inte använda den här katalogen.
Mer information om hur du ändrar databassökvägen finns i "Ange värde för en sökväg".
Öppna en befintlig databasfil eller skapa en ny.
Mer information finns i föregående avsnitt, "Konfigurationsfiler för datatyper".
Definiera dataattribut för datatypen med följande syntax:
DATA_ATTRIBUTES datatypnamn { ICON bildnamn DESCRIPTION sträng attributfält attributfält ... }
där:
datatypnamn är ett unikt namn som ges till den här datatypen.
bildnamn är ett filnamn eller en sökväg för en ikonfil. Använd filens basnamn. Använd till exempel filnamnet minbild för ikonfilerna minbild.m.pm och minbild.t.pm.
attributfält definierar dataatypens utseende eller beteende.
sträng är en teckensträng. Innehållet blir objekthjälp för datatypen.
Definiera datatypens datavillkor med hjälp av följande syntax:
DATA_CRITERIA villkorsnamn { DATA_ATTRIBUTES_NAME datatypnamn villkorsfält villkorsfält ... }
där:
villkorsnamn är ett unikt namn för den här villkorsdefinitionen
datatypnamn är det namn som används i definitionen DATA_ATTRIBUTES
villkorsfält är ett fält som används för att definiera villkoren för tilldelning av en fil till den här datatypen
Spara databasfilen.
Skapa datatypens ikoner
Mer information finns i "Ange ikonbild för datatypen".
Skapa de åtgärder som finns i fältet ACTIONS i attributdefinitionen.
Dubbelklicka på Ladda om åtgärder i programgruppen Skrivbordsverktyg för att läsa om databasen.
Anta att det finns ett program i ditt system som heter xgif som används för att visa GIF-bilder. Normalt startas programmet med kommandot
xgif filnamn
Du vill kunna visa GIF-bilder på flera olika sätt:
Genom att dubbelklicka på en GIF-datafil
Genom att markera datafilen och välja programmet från Markera-menyn
Öppna den nya filen Hemkatalog/.dt/types/GifViewer.dt för redigering.
Skriv datatypsdefinitionerna:
DATA_ATTRIBUTES Gif { DESCRIPTION Gif-bildfil. ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
Skriv åtgärdsdefinitionen för åtgärden GifViewer:
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Gif-fil som ska visas:" WINDOW_TYPE NO_STDIO DESCRIPTION Dubbelklicka eller släpp en fil för att \ visa Gif-filer. }
Eftersom definitionen inte omfattar något ICON -fält använder åtgärden systemets standardikon.
Skapa följande tilldelningsåtgärd för att koppla åtgärden GifViewer till åtgärden View i datatypsdefinitionen. Använd fältet ARG_TYPE för att begränsa denna visningsåtgärd till GIF-filer.
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
Spara filen.
Dubbelklicka på Ladda om åtgärder i programgruppen Skrivbordsverktyg.
DATA_ATTRIBUTES
-definitionen definierar utseende och åtgärd för datatypen. Den anger namn på datatypen och ger dig möjlighet att ange:
Ikonen filhanteraren (fältet ICON field)
Dubbelklickfunktionen och innehållet på Markera-menyn (fältet ACTIONS).
Använd fältet ICON för att ange vilken ikon som ska användas i filhanteraren. Om du inte anger någon ikonbild visas bara namnet i filhanteraren.
Värdet på fältet ICON kan vara:
Basfilnamnet är namnet på filen som innehåller ikonen minus filnamnssuffixet för storlek (m och t) och bildtyp (bm och pm). Använd till exempel GameIcon om filnamnet är GameIcon.m.pm eller GameIcon.t.pm.
Om du använder basfilnamnet måste ikonfilerna placeras i en katalog i ikonsökvägen:
Egna ikoner: Hemkatalog/.dt/icons
Systemtäckande ikoner: /etc/dt/appconfig/icons/språk
En absolut sökväg till ikonen, inklusive fullständigt filnamn.
Du ska bara använda den absoluta sökvägen om ikonfilen inte finns i ikonsökvägen. Om till exempel ikonfilen Spelikon.m.pm finns i katalogen /doc/projects, som inte finns i ikonsökvägen, ska värdet i fältet ICON /doc/projects/Spelikon.m.pm.
I Tabell 13-1 finns en lista över de ikonstorlekar du ska skapa och motsvarande filnamn.
Storleken i bildpunkter |
Bitmappsnamn |
Pixmappsnamn |
---|---|---|
32 gånger 32 |
namn.m.bm. |
namn .m.pm |
16 gånger 16 |
namn.t.bm |
namn.t.pm |
Du kan associera datatyper med åtgärder på två sätt:
Fältet ACTIONS i definitionen DATA_ATTRIBUTES
finns en lista över de åtgärder som visas på filhanterarens Markera-meny. Den första åtgärden i listan är standardåtgärden (dubbelklick).
Åtgärder kan begränsas till angivna datatyper med åtgärdsdefinitionens ARG_TYPE -fält.
Följande datatypsdefinition skapar t ex en datatyp för särskilda "läs detta först"-filer (readme-filer) som skapas av systemadministratören och använder namnkonventionen *.rm.
DATA_ATTRIBUTES SysReadmeFile { ICON SysReadMe ACTIONS Open,Respond } DATA_CRITERIA SysReadmeFileCriteria { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME SysReadmeFile }
Nedan definieras en speciell Respond-åtgärd för filen. Den öppnar en skrivbar kopia av filen i textredigeraren. När filen sparas och textredigeraren avslutas, skickas filen till systemadministratören (adressen sysadmin@utd).
ACTION Respond { ARG_TYPE SysReadmeFile EXEC_STRING /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
Om en fil är en osynlig datatyp visas den inte i filhanteraren.
Använd fältet PROPERTIES i definitionen DATA_ATTRIBUTES
för att ange att objekt av den här typen ska döljas:
PROPERTIES invisible
I Tabell 13-2 visas DATA_ATTRIBUTES
-fälten, som mest används av programmerare. De anger hur filer ska fungera när användaren utför olika skrivbordsaktiviteter.
Mer information finns i Common Desktop Environment Programmer's Guide, som ingår i dokumentationen till utvecklingsmiljön.
Tabell 13-2 DATA_ATTRIBUTES Fält och beskrivningar
Fält |
Beskrivning |
---|---|
För behållare som t ex kataloger. Anger en åtgärd som ska köras när en fil flyttas till en behållare av den här datatypen. |
|
För behållare som t ex kataloger. Anger en åtgärd som ska köras när en fil kopieras till en behållare av den här datatypen. |
|
Anger en åtgärd som ska köras när en fil länkas till en fil av den här datatypen. |
|
Anger att filer av den här datatypen innehåller text som kan visas i en textruta. |
|
Anger motsvarande typ av ToolTalk-medium. |
|
Anger motsvarande MIME-typ. |
|
Anger motsvarande X400-typ. |
Definitionen för DATA_CRITERIA
anger de villkor som används för att tilldela en fil eller katalog en datatyp.
Du kan använda villkoren som definieras i Tabell 13-3 för objekttypsbestämning.
Tabell 13-3 DATA_CRITERIA Villkor och beskrivningar
Du kan använda fler än ett villkor för en datatyp. Du bör däremot inte använda villkoren NAME_PATTERN och PATH_PATTERN i samma datatyp.
Använd fältet NAME_PATTERN för att ange namngivningskrav. Fältvärdet kan innehålla följande jokertecken:
? - matchar ett enstaka tecken
* - matchar noll eller flera tecken i följd
[cc...] - matchar vilket som helst av tecknen (c) inom hakparenteser
[c-c] - matchar vilket som helst av tecknen i intervallet c till c
Följande datatypsdefinition skapar en datatyp baserat på filnamnet. Filnamnet måste börja med QS och sluta med .doc.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION Den här filen innehåller ett dokument för QS-\ projektet. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
Följande definition skapar en datatyp för kataloger med namnet Demo_n, där n kan motsvaras av ett tal mellan 0 och 9.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION Det här är en katalog. Dubbelklicka för att öppna den. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
Använd fältet PATH_PATTERN för att ange sökväg. Du kan använda samma jokertecken som med NAME_PATTERN.
Följande datatyp använder ett villkor baserat på sökvägen.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION Grafikfil för QS-projektet. Dubbelklicka på \ ikonen för att visa bilden. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
Om du vill skapa en datatyp baserat på både filnamn och sökväg, tar du med namnet i värdet PATH_PATTERN value. Du kan inte använda både NAME_PATTERN och PATH_PATTERN i samma villkorsdefinition.
Datatypen QS_Source_Files som definieras nedan gäller för alla filer med namnet appn.c (där n ligger inom intervallet 1 till 9) som finns i underkataloger till */projects/QS.
DATA_ATTRIBUTES QS_Source_Files { ... } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
Följande datatyp gäller för alla filer i katalogen /doc/project1 med namnet chnn.xxx, där n är ett tal mellan 0 och 9 och xxx är ett valfritt filnamnssuffix som är tre tecken långt.
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION Kapitelfil för projektdokumentet. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
Använd fältet MODE för att ange vilka behörigheter som krävs.
Lägesvillkor används normalt i kombination med namnbaserade, sökvägsbaserade eller innehållsbaserade datatyper. Med dessa kan du begränsa en datatyp till en fil eller katalog, eller ange om det krävs behörighet för att läsa, skriva eller använda.
Fältet MODE kan innehålla logiska operatorer (Tabell 13-4) och tecken (Tabell 13-5).
Tabell 13-4 MODE Logiska operatorer
Operator |
Beskrivning |
---|---|
! | |
& | |
| |
Tabell 13-5 MODE Fälttecken och beskrivningar
Tecken |
Beskrivning |
---|---|
Datatypen gäller bara filer |
|
Datatypen gäller bara kataloger |
|
r |
Filen kan läsas av alla användare |
Filen kan ändras av alla användare |
|
Filen kan köras av alla användare |
|
Filen är en länk |
Standardinställningen för ett behörighetsläge är att läget inte spelar någon roll.
Följande fält begränsar datatypen enligt följande:
f&!w - skrivskyddade filer
!w - skrivskyddade filer och kataloger
f&x - körbara filer
f&r&x - filer som både kan ändras och köras
x|!w - filer som är körbara eller skrivskyddade
Följande datatypsdefinition skapar en datatyp för skrivskyddade, icke körbara filer vilkas filnamn följer namnkonventionen *.doc. Den förutsätter att det redan har skapats en visningsåtgärd för datatypen.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION Det här dokumentet är skrivskyddat. Dubbel-\ klicka för att köra redigeraren med en \ skrivskyddad kopia av filen. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
Använd fältet CONTENT för att ange datatyp baserat på filens innehåll. Innehållsbaserad datatypsbestämning kan användas i kombination med namn- eller platsbaserad datatypsbestämning.
Typbestämningen kan baseras på texten i filen eller på dess numeriska innehåll. Numret på filens första byte är 0.
För numeriskt innehåll använder du syntaxen:
CONTENT startbyte byte tal CONTENT startbyte short tal CONTENT startbyte long tal
För mappinnehåll använder du syntaxen:
CONTENT 0 filename "filnamn"
Använd den vanliga C-beteckningen för oktala (inledande o) och hexadecimala (inledande oX) tal.
Om du använder en innehållsbaserad datatyp kan systemets prestanda sjunka. Använd därför namn- eller sökvägsbaserade datatyper när det är möjligt.
Datatypen Writable_Wingz gäller för alla filer med skrivbehörighet som innehåller strängen WNGZ i början av filen.
DATA_ATTRIBUTES Writable_Wingz { ... } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
Du kan skapa en datatyp med flera oberoende villkor, dvs filen tilldelas datatypen om den motsvarar minst ett av villkoren.
Skapa en DATA_ATTRIBUTES
-definition för datatypen.
Skapa en DATA_CRITERIA
-definition för varje villkor.
Använd fältet DATA_ATTRIBUTES_NAME för att ansluta alla villkor till samma DATA_ATTRIBUTES
-definition.
Följande definitioner skapar datatypen Mif. Typen baseras på namn eller innehåll.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
Sökvägen för datatyper omfattar språkberoende adresser. Skrivbordet använder värdet på LANG för att bestämma på vilka adresser datatypsdefinitioner söks.
Språkanpassade datatypsdefinitioner måste placeras i rätt språkberoende katalog i åtgärdssökvägen.
Standardsökväg:
Egna åtgärder: Hemkatalog/.dt/types
Åtgärder för hela systemet: /etc/dt/appconfig/types/språk
Inbyggda åtgärder: /usr/dt/appconfig/types/språk