Användarna kan anpassa huvudgruppen och dess meny och använda funktionen Installationsikon på panelundermenyerna.
I det här kapitlet beskrivs hur du anpassar huvudgruppen genom att skapa och redigera konfigurationsfiler.
Referensinformation om huvudgruppens kontroller och konfiguration finns i direkthjälpsavsnittet (man page) för dtfpfile(4X).
Referensinformation om arbetsytehanteraren finns i avsnitten om dtwm(1) och dtwmrc(4) i direkthjälpen (man page).
Huvudgruppen definieras i en databas med konfigurationsfiler.
Med konfigurationsfilerna anpassar du huvudgruppen. Vissa ändringar kan du bara göra genom att redigera en konfigurationsfil, bl a:
Lägga till en ny kontrollposition på huvudpanelen
Lägga till speciella typer av kontroller, t ex klientfönster
Ändra vissa standardbeteenden, t ex om enkel - eller dubbelklickning ska användas för huvudgruppens kontroller
För att konfigureringen ska vara så flexibel som möjligt kan dessa filer vara egna eller systemtäckande eller finnas i andra system.
Huvudgruppen skapas och hanteras av arbetsytehanteraren.
Standardhuvudgruppen definieras i konfigurationsfilen /usr/dt/appconfig/types/språk/dtwm.fp.
Den här filen får inte ändras.
Huvudgruppsdefinitionen kan distribueras mellan ett stort antal filer som finns lagrade lokalt eller i fjärrsystem.
Filer som används för att definiera huvudgruppen måste uppfylla följande krav:
Filnamnet måste avslutas med .fp, t ex mail.fp.
Filen måste finnas i åtgärdsdatabasens sökväg
Sökvägen till standardåtgärdsdatabasen omfattar följande kataloger, vilka söks i denna ordning:
Egna anpassningar - Hemkatalog/.dt/types
Anpassningar för hela systemet - /etc/dt/appconfig/types/språk
Inbyggda paneler och kontroller - /usr/dt/appconfig/types/språk
Ytterligare en katalog, Hemkatalog/.dt/types/fp_dynamic, används för egna anpassningar som har utförts med hjälp av användargränssnittet. Använd inte den här katalogen för manuella anpassningar.
Sökvägen till åtgärdsdatabasen kan innehålla ytterligare kataloger som har lagts till för att konfigurera det system som ska användas i nätverk. Ytterligare fjärradresser läggs speciellt till när systemet konfigureras för åtkomst av en programserver. Mer information finns i "Sökväg till databas (åtgärd/datatyper)".
Huvudgruppen sätts ihop ifrån alla konfigurationsfiler som finns i åtgärdsdatabasens sökväg.
När det uppstår en konflikt mellan olika delar av definitionen, bestämmer prioritetsreglerna vilken definition som ska användas. Två komponenter krockar med varandra när de:
Har samma kontrollnamn, CONTAINER_NAME
och CONTAINER_TYPE
.
Konkurrerar om samma placering (genom att de har olika namn men samma CONTAINER_NAME
, CONTAINER_TYPE
och POSITION_HINTS
).
Huuvudgruppen använder följande prioritetsregler:
Om olika komponenter har samma kontrollnamn, behållarnamn (container_name) och behållartyp (container_type), används den komponent som läses först
Om t ex både en systemtäckande och en inbyggd kontroll innehåller de här fälten men i övrigt är olika:
CONTROL TextEditor { CONTAINER_TYPE BOX CONTAINER_NAME Top ... }
prioriteras den systemtäckande kontrollen.
Om två olika komponenter konkurrerar om samma position, placeras de i den ordning de läses.
Om en användare t ex skapar en ny egen kontroll för huvudpanelen (CONTAINER_TYPE
och CONTAINER_NAME
Top) och tilldelar den POSITION_HINTS
5, flyttar den egna kontrollen den inbyggda kontrollen och alla andra kontroller med högre positionsnummer ett steg åt höger.
När du ändrar en kontroll genom att skapa en ny kontroll för hela systemet eller egen version av den, måste den nya kontrolldefinitionen ange samma kontrollnamn, CONTAINER_NAME
och CONTAINER_TYPE
. I annat fall visas både den nya kontrollen och den befintliga.
När användaren anpassar huvudgruppen med kontrollen Installationsikon och dess undermenyer, sparas filer i katalogen Hemkatalog/.dt/types/fp_dynamic.
Huvudgruppen skapar ytterligare en fil, Hemkatalog/.dt/sessions/dtwmfp.session, som används för att spara och återställa status för den anpassade huvudgruppen för varje session.
Användare kan använda snabbmenyerna och kontrollerna för ikoninstallation på huvudgruppen när de vill göra betydande anpassningar av huvudgruppen.
I det här avsnittet beskrivs hur du:
Förhindrar vissa egna anpassningar. Du kanske vill göra det omöjligt för användarna att ta bort en kontroll.
Ångrar egna anpassningar. En användare kanske vill att du ska återställa en kontroll som har tagits bort av misstag.
Om kontrollen är en inbyggd kontroll kopierar du dess definition från /usr/dt/appconfig/types/språk/dtwm.fp till /etc/dt/appconfig/types/språk/namn.fp.
Lägg till följande rad i kontrolldefinitionen:
LOCKED True
Åtgärden Återställ huvudgrupp i programgruppen Skrivbords_kontroller tar bort alla anpassningar av användargränssnittet. Användarna kan använda den här åtgärden för att ta bort alla egna anpassningar som har gjorts med huvudgruppens menyer.
Använd proceduren nedan för att återställa individuella kontroller.
I katalogen Hemkatalog/.dt/types/fp_dynamic tar du bort filen som skapades när användaren tog bort kontrollen. Kontrollen har samma namn som den originalkontroll som togs bort.
Om användaren t ex tog bort kontrollen för Ikonredigeraren, innehåller en fil i katalogen fp_dynamic:
CONTROL IconEditor { ... DELETE True }
När användaren tar bort en panelundermeny skapas en separat dynamisk fil för panelundermenyn och för varje kontroll på den.
Huvudgruppen skapas genom att definitioner för dess komponenter läggs ihop. Var och en av dessa komponenter har en obligatorisk syntax som definierar var komponenten placeras i huvudgruppen, hur den ser ut och hur den fungerar.
Huvudgruppen sätts samman från utsidan och inåt:
PANEL är behållaren på huvudgruppens översta nivå (den överordnade).
PANEL är en behållare som innehåller en eller flera kontroller BOXes.
Definitionen för en panelundermeny BOX är en behållare som innehåller en eller flera kontroller CONTROLs.
Det finns två specialtyper av behållare:
Definitionen för en panelundermeny SUBPANEL är kopplad till en viss kontroll (kontrollen är behållaren för panelundermenyn). Panelundermenyer öppnas när du klickar på den kontroll som de hör till.
Varje komponent i huvudgruppen definieras separat med syntaxen:
COMPONENT namn { KEYWORD värde KEYWORD värde ... }
Vissa nyckelord är obligatoriska och andra valfria. Mer information finns i direkthjälpen (man) för dtfpfile(4X).
PANEL är komponenten på den översta nivån. Dess definition innehåller:
huvudgruppens namn
Fält som beskriver allmänt utseende och allmänna metoder för hela huvudgruppen
PANEL front_panel_name { KEYWORD värde KEYWORD värde ... }
Front_panel_name är ett unikt namn på huvudgruppen. Standardnamnet är "huvudgruppen".
Definitionen för en panelundermeny BOX beskriver:
BOX-namn
Rutans placering i PANEL (POSITION_HINTS)
Fält som beskriver utseende och metod för hela rutan
BOX boxnamn { CONTAINER_NAME huvudgruppsnamn POSITION_HINTS position KEYWORD värde KEYWORD värde ... }
Definitionen för en panelundermeny (CONTROL) beskriver:
CONTROL namn
Om kontrollen finns i en ruta (BOX), panelundermeny (SUBPANEL) eller arbetsyteväxlare (SWITCH) (CONTAINER_TYPE)
Vilken ruta, panelundermeny eller arbetsyteväxlare kontrollen finns i (CONTAINER_NAME)
Kontrollens (CONTROL) placering i rutan BOX (POSITION_HINTS).
Fält som beskriver utseende och metod för kontrollen
CONTROL kontrollnamn { CONTAINER_TYPE BOX eller SUBPANEL eller SWITCH CONTAINER_NAME boxnamn eller underpanelnamn eller parameternamn TYPE kontrolltyp POSITION_HINTS position KEYWORD värde KEYWORD värde ... }
Definitionen för en panelundermeny (SUBPANEL) beskriver:
SUBPANEL-namn
Namnet på kontrollen som panelundermenyn hör till (CONTAINER_NAME)
Fält som beskriver utseende och metod för panelundermenyn
SUBPANEL underpanelnamn { CONTAINER_NAME kontrollnamn KEYWORD värde KEYWORD värde ... }
SWITCH beskriver:
SWITCH-namn
Kontrollens (SWITCH) placering i rutan BOX (POSITION_HINTS)
Fält som beskriver utseende och metod för arbetsyteväxlaren (SWITCH)
SWITCH parameternamn { CONTAINER_NAME boxnamn POSITION_HINTS position KEYWORD värde KEYWORD värde ... }
Huvudpanelen är huvudgruppen förutom dess underpanelmenyer.
De ändringar du kan göra är bl a:
Lägga till och ta bort kontroller
Byta plats på kontroller
Skapa huvudgruppens konfigurationsfil:
För hela systemet: /etc/dt/appconfig/types/språk/*.fp
Egen: Hemkatalog/.dt/types/*.fp
Definiera kontrollen i filen.
Använd fälten CONTAINER_NAME och CONTAINER_TYPE för att ange behållare för kontrollen:
CONTAINER_NAME Top CONTAINER_TYPE BOX
Använd POSITION_HINTS för att ange kontrollens placering i sidled. Eftersom anpassningar har högre prioritet än inbyggda kontroller kommer den nya kontrollen att förskjuta en befintlig kontroll på samma plats en plats åt höger.
Spara konfigurationsfilen.
Skapa en ikon för huvudgruppskontrollen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Följande kontrolldefinition som finns i filen /etc/dt/appconfig/types/språk/audio.fp infogar en ljudprogramkontroll mellan kontrollerna för Klocka och Kalender.
CONTROL AudioApplication { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX ICON AudioApp POSITION_HINTS 2 PUSH_ACTION StartAudioApplication PUSH_RECALL true }
Skapa huvudgruppens konfigurationsfil:
För hela systemet: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemkatalog/.dt/types/namn.fp
Kopiera definitionen för kontrollen som du vill ta bort till den nya filen.
Om kontrollen är inbyggd finns definitionen i /usr/dt/appconfig/types/språk/dtwm.fp.
Du behöver inte kopiera hela definitionen. Den del du kopierar måste dock innehålla fälten CONTAINER_NAME och CONTAINER_TYPE.
Lägg till fältet DELETE i definitionen:
DELETE True
Spara konfigurationsfilen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Följande kontrolldefinition som finns i filen /etc/dt/appconfig/types/språk/TrashCan.fp tar bort kontrollen för papperskorgen från huvudgruppen.
CONTROL Trash { CONTAINER_NAME Top CONTAINER_TYPE BOX DELETE True }
Använd den här proceduren om du behöver ändra en kontrolldefinition, t ex byta dess ikonbild.
Kopiera hela kontrolldefinitionen från /usr/dt/appconfig/types/språk/dtwm.fp till:
För hela systemet: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemkatalog/.dt/types/namn.fp.
Redigera fältet du vill ändra. Du kan också lägga till ytterligare fält.
Spara filen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Kopiera kontrolldefinitionerna för de kontroller som du vill byta plats på från /usr/dt/appconfig/types/språk/dtwm.fp till:
För hela systemet: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemkatalog/.dt/types/namn.fp.
Du måste kopiera hela kontrolldefinitionen för alla kontroller som ska flyttas.
Byt ut värdena på fälten POSITION_HINTS mellan kontrolldefinitionerna.
Spara filen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Följande kontrolldefinitioner som finns i filen /etc/dt/appconfig/types/C/MailHelp.fp byter plats på kontrollerna för post och hjälphanteraren och låser dessa kontroller för egna ändringar.
CONTROL Mail { POSITION_HINTS 12 LOCKED True ...fortsättningen på kontrolldefinitionen }
CONTROL Help { POSITION_HINTS 5 LOCKED True ...fortsättningen på kontrolldefinitionen }
Skapa en annan kontrolldefinition med samma namn:
kontrollnamn
Följande två kontroller definieras i två olika konfigurationsfiler. Dessa kontroller har samma kontrollnamn och behållarnamn, och betraktas därför som samma kontroll.
Definition i /etc/dt/appconfig/types/C/SysControls.fp.
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 2 ... }
Definition i Hemkatalog/.dt/types/MyControls.fp
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 6 ... }
Den egna kontrollen har prioritet, så kontrollen låses vid position 6.
Kontrolldefinitionens ICON -fält definierar vilken ikonbild som ska användas för kontrollen.
Värdet på fältet ICON kan vara:
Ett basfilnamn.
Grundfilnamnet är namnet på filen som innehåller ikonen minus filnamnssuffixen för storlek (m och t) och bildtyp (bm och pm). Använd till exempel MittSpel om filnamnet är MittSpel.l.pm eller MittSpel.m.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.
Vilken ikonstorlek på ikonen som behövs beror på var kontrollen placeras:
Platsstorlek
Huvudpanelen - 48 gånger 48 bildpunkter (namn.l.pm eller namn.l.bm)
Panelundermeny - 24 gånger 24 bildpunkter (namn.s.pm eller namn.s.bm)
Placera filikonen i en av följande kataloger:
Egna ikoner: Hemkatalog/.dt/icons
Systemtäckande ikoner: /etc/dt/appconfig/icons/språk
Användarna kan skapa och ändra panelundermenyerna med hjälp av huvudgruppens menyer.
I det här avsnittet beskrivs hur du gör systemtäckande anpassningar, vilket kräver att du ändrar huvudgruppens konfigurationsfiler.
En panelundermeny hör till en kontroll i huvudpanelen.
Kopplingen görs i panelundermenyns definition. Fältet CONTAINER_NAME anger vilken kontroll som panelundermenyn hör till:
CONTROL kontrollnamn { ... } SUBPANEL underpanelnamn { CONTAINER_NAME kontrollnamn ... }
Leta reda på kontrollnamnet på den kontroll i huvudpanelen som du vill koppla panelundermenyn till.
Om kontrollen är inbyggd finns definitionen i /usr/dt/appconfig/types/språk/dtwm.fp.
Skapa en ny fil med namnet /etc/dt/appconfig/types/språk/*.fp.
Definiera panelundermenyn:
SUBPANEL underpanelnamn { CONTAINER_NAME kontrollnamn TITLE värde KEYWORD värde ... }
Spara den nya konfigurationsfilen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Du kan ändra allmänna egenskaper för (t ex rubrik) och innehåll i inbyggda panelundermenyer.
Skapa en ny konfigurationsfil för huvudgruppen:
För hela systemet: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemkatalog/.dt/types/namn.fp.
Kopiera hela standarddefinitionen för SUBPANEL /usr/dt/appconfig/types/språk/dtwm.fp till den nya filen:
SUBPANEL underpanelnamn { ... }
Ändra definitionen till panelundermenyn.
Spara den nya konfigurationsfilen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Följande definition som finns i filen /users/jenny/.dt/types/PerApps.fp ändrar t ex namnet på panelundermenyn Egna program:
SUBPANEL PersAppsSubpanel { CONTAINER_NAME Textredigerare TITLE Jennys program }
Skapa en konfigurationsfil för huvudgruppen: /etc/dt/appconfig/types/språk/namn.fp.
Definiera den systemtäckande kontrollen i filen.
Använd fälten CONTAINER_NAME och CONTAINER_TYPE för att ange behållare för kontrollen:
CONTROL kontrollnamn { CONTAINER_NAME underpanelnamn CONTAINER_TYPE SUBPANEL ... }
Spara konfigurationsfilen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Följande kontroll som definieras i en ny fil /etc/dt/appconfig/types/språk/DigitalClock.fp lägger till DigitalClock (i programgruppen Skrivbordsverktyg) på panelundermenyn Egna program för alla användare.
CONTROL DigitalClockControl { TYPE icon CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL ICON Dtdgclk PUSH_ACTION DigitalClock PUSH_RECALL True }
Använd samma procedur som för att ta bort kontroller på Huvudpanelen. Se "Ta bort en kontroll".
Lägg till följande fält i panelundermenyns definition:
CONTROL_INSTALL False
Standardmetoden för panelundermenyer är att de stängs när användaren väljer en kontroll, såvida inte användaren har flyttat panelundermenyn från den ursprungliga positionen.
Huvudgruppen kan konfigureras så att panelundermenyerna hålls öppna tills användaren stänger dem.
Skapa en ny konfigurationsfil för huvudgruppen i:
För hela systemet: /etc/dt/appconfig/types/språk/*.fp
Egen: Hemkatalog/.dt/types/*.fp
Kopiera standardbeskrivningen för PANEL /usr/dt/appconfig/types/språk/dtwm.fp till den nya filen:
PANEL FrontPanel { ... }
Lägg till följande fält i definitionerna för PANEL:
SUBPANEL_UNPOST False
Spara den nya konfigurationsfilen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Användarna kan skapa egna knappar genom att släppa ikoner på Installationsikon-kontrollerna.
Det här sättet att anpassa är enkelt, men funktionaliteten omfattar bara en del av vad som kan göras med kontroller i huvudgruppen. En kontroll som har skapats med Installationsikon kan t ex inte:
Innehålla animeringar
Visa ett klientfönster
Ändra utseende när något inträffar (t ex för att ange att ny post har tagits emot)
I det här avsnittet beskrivs hur du manuellt skapar kontroller i huvudgruppen.
Referensinformation om syntaxen för huvudgruppskontroller finns i direkthjälpen (man) för dtfpfile(4X).
Strukturen på en definition till en huvudgruppskontroll är:
CONTROL kontrollnamn { TYPE kontrolltyp CONTAINER_NAME värde CONTAINER_TYPE värde övriga fält som definierar utseende och uppförande }
Fältet TYPE i kontrolldefinitionen anger grundläggande beteende för den kontrollen.
Kontrollfunktion
Kontrollen kör en angiven åtgärd när användaren klickar på kontrollen eller släpper en fil på den.
Upptaget-lampa. Kontrollen blinkar (växlar bilder) när en åtgärd startas
Ett klientfönster i huvudgruppen.
Klocka.
Visar aktuellt datum.
Representerar en fil. När du väljer kontrollen körs standardåtgärden för den filen.
Detta avsnitt beskriver hur en kontroll och olika kontrolltyper skapas.
Om kontrollen ska ha något av fälten PUSH_ACTION och/eller DROP_ACTION skapar du motsvarande åtgärdsdefinitioner. Dessa åtgärder körs när användaren klickar på kontrollen eller släpper en fil på den.
Skapa ikonbildens fil för kontrollen.
Mer information om ikonstorlek, ikonnamn och ikonplaceringar finns i "Ikonbildsfiler".
Skapa en ny konfigurationsfil för huvudgruppen i:
För hela systemet: /etc/dt/appconfig/types/språk/*.fp
Egen: Hemkatalog/.dt/types/*.fp
Lägg till kontrolldefinitionen i filen.
Spara filen.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Använd följande fält för att definiera kontrollens funktion:
TYPE: Ange som ikon
PUSH_ACTION: Anger namnet på åtgärden som ska köras
Följande kontroll, som placeras på panelundermenyn Egna program, kör ett spel som användaren har lagt in:
CONTROL Ball { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON ball PUSH_ACTION RunBallGame HELP_STRING "Välj den här kontrollen för att spela." }
Följande kontroll placeras i det övre vänstra hörnet av arbetsyteväxlaren. Den startar en åtgärd som heter CutDisp.
CONTROL StartCutDisp { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS first ICON cutdisp HELP_STRING "Välj den här kontrollen för att köra cutdisp." PUSH_ACTION CutDisp }
Använd följande fält för att definiera kontrollens funktion:
TYPE: Ange som fil
PUSH_ACTION: Ange som Open
Det måste finnas en Open-åtgärd definierad för filens datatyp.
Följande kontroll placeras längst till höger på huvudpanelen. Den startar textredigeraren med datafilen /users/ellen/PhoneList.txt. Åtgärden Open för *.txt-filer är en del av standardåtgärdsdatabasen.
CONTROL EditPhoneList { TYPE file FILE_NAME /users/ellen/PhoneList.txt CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS last ICON PhoneBook HELP_STRING "Den här kontrollen visar Ellens telefonlista." PUSH_ACTION Open }
Använd fältet DROP_ACTION för att ange vilken åtgärd som ska köras när användaren släpper en fil på kontrollen. Åtgärden måste kunna acceptera filargument.
En kontrolldefinition innehåller ofta fälten PUSH_ACTION och DROP_ACTION. Du kan använda samma åtgärd för en dra och släpp-åtgärd.
Följande kontroll på panelundermenyn Egna program kör X-klienten xwud, som använder filargument.
CONTROL Run_xwud { CONTAINER_NAME PerAppsSubpanel CONTAINER_TYPE SUBPANEL POSITION_HINTS 2 ICON XwudImage PUSH_ACTION RunXwud DROP_ACTION RunXwud }
Använd följande fält för att definiera kontrollens funktion:
TYPE: Ange något av följande värden:
icon - använd den här typen om du vill ange en PUSH_ACTION och/eller DROP_ACTION för kontrollen.
file - använd den här typen om du vill att kontrollen ska fungera som en fil när du dubbelklickar på filikonen i filhanteraren.
ICON och ALTERNATE_ICON: Beskriver de bilder som används för att ange ändrad och oförändrad status för den övervakade filen.
MONITOR_TYPE: Beskriver vilka villkor som gör att bilden ändras. Använd något av följande värden:
mail - kontrollen ändrar utseende när information läggs till i filen.
file - kontrollen ändras när den angivna filen inte längre är tom.
FILE_NAME: Anger namnet på den fil som ska övervakas.
Följande kontroller letar t ex efter en fil med namnet meetings som ska överföras till ditt system med hjälp av anonym ftp. Kontrollen placeras i panelundermenyn Egna program.
CONTROL MonitorCalendar { TYPE file CONTAINER_NAME PersonalApps CONTAINER_TYPE SUBPANEL POSITION_HINTS first FILE_NAME /users/ftp/meetings MONITOR_TYPE file ICON meetingsno ALTERNATE_ICON meetingsyes }
En kontroll för enstaka förekomster kontrollerar om den process som har startats av PUSH_ACTION redan körs. Om processen inte körs, körs PUSH_ACTION. Om processen redan körs flyttas fönstret högst upp i fönsterstacken på den aktuella arbetsytan.
Använd följande fält för att definiera kontrollens funktion:
PUSH_RECALL: Ange som True.
CLIENT_NAME: Anger namnet på kontrollens klient.
Värdet på CLIENT_NAME måste stämma överens med den första strängen (res_name) i egenskapen WM_CLASS i programmets primära fönster. Mer information finns i direkthjälpen (man) för xprop(1).
PUSH_ACTION: Beskriver åtgärden som körs när användaren klickar på kontrollen.
Följande kontroll kör en förekomst av ett program vars åtgärd heter MyEditor.
CONTROL MyEditor { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 15 PUSH_RECALL True CLIENT_NAME BestEditor PUSH_ACTION StartMyEditor ICON MyEd }
En klientfönsterkontroll är ett programfönster som är inbäddat i huvudgruppen. Du kan t ex placera en systembelastningsmätare i huvudgruppen genom att skapa en klientfönsterkontroll för xload.
Definiera kontrollen.
Använd följande fält för att definiera kontrollens funktion:
TYPE: Ange som client.
CLIENT_NAME: Anger vilken klient som ska startas.
Värdet på CLIENT_NAME måste stämma överens med den första strängen (res_name) i egenskapen WM_CLASS i programmets primära fönster. Mer information finns i direkthjälpen (man) för xprop(1).
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
Starta klienten från kommandoraden i ett terminalfönster.
Följande kontroll visar t ex en belastningsmätare på 30 x 20 bildpunkter.
CONTROL LoadMeter { TYPE client CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 30x20 }
Om klienten inte sparas och återställs mellan sessionerna, vill du kanske konfigurera kontrollen så att klienten startar när användaren klickar på den. Du kan t ex konfigurera kontrollen för LoadMeter så att den startar xload genom att lägga till följande rad i definitionen:
PUSH_ACTION StartXload
och skapa åtgärden:
ACTION StartXload { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/contrib/bin/X11/xload }
Du kan skapa en animeringssekvens som används när användaren väljer kontrollen eller släpper ett objekt på den.
För att kunna innehålla en animering måste kontrollen:
Vara av typen icon
Ha en PUSH_ACTION eller DROP_ACTION
Ange animeringssekvensen med hjälp av komponenten ANIMATION:
ANIMATION animationsnamn { ANIMATION ikon1 [fördröjning_ms] ANIMATION ikon2 [fördröjning_ms] ... }
där ikon1, ikon2 osv är namn på ikoner och fördröjning_ms är tidsfördröjningen mellan animeringsikonerna i millisekunder. Standardtidsförskjutningen är 200 millisekunder.
Lägg till fältet PUSH_ANIMATION och/eller DROP_ANIMATION till kontrolldefinitionen. Värdet är namnet på sekvensen ANIMATION.
Följande rad animerar en kontroll som startar programmet BestEditor. Tidsförskjutningen mellan ikonerna är 300 millisekunder. I exemplet antas det att du har skapat ikonfilerna frame1, frame2 osv.
CONTROL BestEditor { ... PUSH_ANIMATION BestEdAnimation ... }
ANIMATION BestEdAnimation { frame1 300 frame2 ... }
Det finns två sätt att göra hjälp till en kontroll tillgänglig:
Lägga till en hjälpsträng i kontrolldefinitionen.
Hjälpsträngen visas i hjälpfönstret när användaren anropar objekthjälp till kontrollen. Hjälpsträngen kan inte innehålla formatering (t ex rubriker) eller länkar.
Om du vill lägga till en hjälpsträng anger du den i kontrolldefinitionen:
HELP_STRING hjälpsträng
Ange ett hjälpavsnitt i en registrerad hjälpvolym.
Ett hjälpavsnitt är skriven information som utnyttjar alla möjligheter som finns i hjälpsystemet. För att kunna skriva hjälpavsnitt måste du använda skrivbordets Help Developer's Kit.
När du vill lägga in ett hjälpavsnitt anger du hjälpvolym och avsnitts-ID i kontrolldefinitionen:
HELP_VOLUME hjälpvolymnamn HELP_TOPIC avsnittsid
Det finns flera sätt att anpassa området för växling av arbetsyta:
Ändra antalet arbetsytor
Ändra utseende på växlingsområde
Ändra kontrollerna i växlingsområde
Ändra följande resurs för arbetsytehanteraren:
Dtwm*workspaceCount: n
Mer information finns i "Ändra antalet systemtäckande arbetsytor".
Följande definition definierar ett treraders växlingsområde.
SWITCH Switch { CONTAINER_NAME boxnamn NUMBER_OF_ROWS 3 ... }
Skapa en konfigurationsfil för huvudgruppen med kontrolldefinitionen.
Skapa kontrollens ikon. Storleken bör vara 16 gånger 16 bildpunkter.
Följande kontroll placerar en Terminal-kontroll i arbetsyteväxlaren.
CONTROL SwitchTerminal { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 3 ICON Fpterm LABEL Terminal PUSH_ACTION Dtterm HELP_TOPIC FPOnItemTerm HELP_VOLUME FPanel }
Kontrollen använder en inbyggd ikon och samma hjälpavsnitt som används av Terminal-kontrollen på panelundermenyn Egna program.
Med huvudgruppens syntax för PANEL kan du:
Ändra positionen för huvudgruppen
Ändra fönstrets detaljer
Ange utseende och metod för kontrollerna
Standardbeskrivningen av PANEL finns i /usr/dt/appconfig/types/språk/dtwm.fp.
Mer information finns i direkthjälpen (man) för dtfpfile(4X).
Skapa en ny konfigurationsfil för huvudgruppen i /etc/dt/appconfig/types/språk eller Hemkatalog/.dt/types.
Kopiera standardbeskrivningen för PANEL /usr/dt/appconfig/types/språk/dtwm.fp till den nya filen:
Redigera PANEL beskrivningen.
Den nya PANEL -beskrivningen prioriteras över standardbeskrivningen.
Följande panel finns i det övre högra hörnet.
PANEL SpecialFrontPanel { PANEL_GEOMETRY -1+1 ... }
Lägg till följande rad i PANEL definitionen:
DISPLAY_CONTROL_LABELS True
Lägg till fältet LABEL till varje kontroll.
Kontrollnamn används om LABEL inte anges.
Använd fältet CONTROL_BEHAVIOR i PANEL -definitionen för att ange hur användaren kör PUSH_ACTION. Tänkbara värden är:
single_click - användaren klickar på kontrollen för att köra PUSH_ACTION
double_click - användaren dubbelklickar på kontrollen för att köra PUSH_ACTION
När du vill göra mycket omfattande ändringar kan det vara bättre att skapa en helt ny huvudgrupp.
För att undvika konflikt med huvudgruppens inbyggda komponenter bör en helt ny huvudgrupp använda nya namn för PANEL och andra behållare.
Skapa PANEL -komponenten för den nya huvudgruppen. Ge den ett unikt namn:
PANEL front_panel_name { ... }
Skapa nya rutor och kontroller, och använd de nya behållarnamnen.
Om du vill använda befintliga komponenter måste du kopiera deras definitioner och ändra värdet CONTAINER_NAME.
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.
I följande exempel ändras standardhuvudgruppen så att dess kontroller ordnas i tre rader.
Kopiera /usr/dt/appconfig/types/språk/dtwm.fp till Hemkatalog/.dt/types/MyFrontPanel.fp. Tilldela filen skrivbehörighet.
Det är den här filen du redigerar för att skapa en ny huvudgrupp.
Ändra namnet på huvudgruppen:
PANEL NewFrontPanel
Ändra namnet på rutan som heter Top och redigera behållarens namn:
BOX NewFrontPanelTop { CONTAINER_NAME NewFrontPanel POSITION_HINTS first ... }
Lägg till rutdefinitioner för den mellersta och undre raden:
BOX NewFrontPanelMiddle { CONTAINER_NAME NewFrontPanel POSITION_HINTS second }
BOX NewFrontPanelBottom { CONTAINER_NAME NewFrontPanel POSITION_HINTS second }
Ändra CONTAINER_NAME för följande kontroller till NewFrontPanelTop:
Klocka
Datum
Hem
Textredigerare
Post
Ändra CONTAINER_NAME för följande kontroller till NewFrontPanelBottom:
Skrivare
Snittvariant, Typ
Program
Hjälp
Papperskorg
Ändra CONTAINER_NAME för växlaren till NewFrontPanelMiddle:
Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.