Användarna kan anpassa Frontpanelen och dess meny och använda funktionen Installera Ikon på panelundermenyerna.
I det här kapitlet beskrivs hur du anpassar Frontpanelen genom att skapa och redigera konfigurationsfiler.
Referensinformation om Frontpanelens kontroller och konfiguration finns i direkthjälpen (man) för dtfpfile(4X).
Referensinformation om Arbetsytehanteraren finns i direkthjälpen (man) för dtwm(1) och dtwmrc(4).
Frontpanelen definieras i en databas med konfigurationsfiler.
Med konfigurationsfilerna anpassar du Frontpanelen. 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 - exempelvis om Frontpanelens kontroller ska svara på klick eller dubbelklick
För att konfigureringen ska vara så flexibel som möjligt kan dessa filer vara egna eller systemtäckande eller finnas i andra system.
Frontpanelen skapas och hanteras av Arbetsytehanteraren.
Standardfrontpanelen definieras i konfigurationsfilen /usr/dt/appconfig/types/språk/dtwm.fp.
Den här filen får inte ändras.
Frontpanelsdefinitionen kan distribueras mellan ett stort antal filer som finns lagrade lokalt eller i fjärrsystem.
Filer som används för att definiera Frontpanelen måste uppfylla följande krav:
Filnamnet måste sluta på .fp, exempelvis mail.fp
Filen måste finnas i funktionsdatabasens sökväg
Sökvägen till standardfunktionsdatabasen omfattar följande mappar, vilka söks i denna ordning:
Egna anpassningar - Hemmapp/.dt/types
Systemtäckande anpassningar - /etc/dt/appconfig/types/språk
Inbyggd panel och kontroll - /usr/dt/appconfig/types/språk
Ytterligare en mapp, Hemmapp/.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 mappen för manuella anpassningar.
Sökvägen till funktionsdatabasen kan innehålla ytterligare mappar 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 "Databassökväg (funktion/datatyper)".
Frontpanelen sätts ihop ifrån alla konfigurationsfiler som finns i funktionsdatabasens 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
.
tävlar om samma placering (genom att ha olika namn men samma CONTAINER_NAME
, CONTAINER_TYPE
och POSITION_HINTS
).
Frontpanelen 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
BOX och CONTAINER_NAME
Top) och kopplar den till POSITION_HINTS
5, flyttar den egna kontrollen den inbyggda och alla andra kontroller med högre positionsnummer en position åt höger.
När du ändrar en kontroll genom att skapa en ny systemtäckande kontroll 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 Frontpanelen med Installera ikon och dess egna menyer, skrivs filer till mappen Hemmapp/.dt/types/fp_dynamic.
Frontpanelen skapar ytterligare en fil, Hemmapp/.dt/sessions/dtwmfp.session, som används för att spara och återställa status för anpassade Frontpanelen för varje session.
Användare kan använda snabbmenyerna och kontrollerna för ikoninstallation på Frontpanelen när de vill göra betydande anpassningar av Frontpanelen.
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 inbyggd 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
Frontpanelsfunktionen Återställ Frontpanelen i programgruppen Skrivbordsverktyg tar bort alla anpassningar av användargränssnittet. Användarna kan använda den här funktionen för att ta bort alla egna anpassningar som har gjorts med Frontpanelens menyer.
Använd proceduren nedan för att återställa individuella kontroller.
I mappen Hemmapp/.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 mappen 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.
Frontpanelen 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 på Frontpanelen, hur den ser ut och hur den fungerar.
Frontpanelen sätts samman från utsidan och inåt:
En panel (PANEL) är behållaren på Frontpanelens översta nivå (den överordnade).
En PANEL är en behållare som innehåller en eller flera rutor (BOXes).
En BOX är en behållare som innehåller en eller flera kontroller (CONTROLs).
Det finns två specialtyper av behållare:
En panelundermeny (SUBPANEL) är kopplad till en viss kontroll (kontrollen är behållaren för panelundermenyn). Panelundermenyer "glider upp" från den kontroll som de är associerade till.
Varje komponent i Frontpanelen 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).
En PANEL är komponenten på den översta nivån. Dess definition innehåller:
Frontpanelens namn
Fält som beskriver allmänt utseende och allmänna metoder för hela Frontpanelen
PANEL frontpanelnamn { KEYWORD värde KEYWORD värde ... }
Frontpanelnamn är ett unikt namn på Frontpanelen. Standardnamnet är "FrontPanel".
En BOX-definition beskriver:
Rutans namn
Rutans placering på PANEL (POSITION_HINTS)
Fält som beskriver utseende och metod för hela rutan
BOX rutans namn { CONTAINER_NAME frontpanelnamn POSITION_HINTS position KEYWORD värde KEYWORD värde ... }
Definitionen för en kontroll (CONTROL) beskriver:
Kontrollens namn
Om kontrollen finns i en ruta (BOX), panelundermeny (PANEL) eller arbetsyteväxlare (SWITCH) (CONTAINER_TYPE)
Namnet på den ruta, panelundermeny eller arbetsyteväxlare kontrollen finns i (CONTAINER_NAME)
Kontrollens position i rutan (POSITION_HINTS).
Fält som beskriver utseende och metod för kontrollen
CONTROL Kontrollnamn { CONTAINER_TYPE BOX eller SUBPANEL eller SWITCH CONTAINER_NAME rutans namn eller panelundermenyns namn eller arbetsyteväxlarens namn TYPE kontrolltyp POSITION_HINTS position KEYWORD värde KEYWORD värde ... }
Definitionen för en panelundermeny (SUBPANEL) beskriver:
panelundermenyns namn
Namnet på kontrollen som panelundermenyn är kopplad till (CONTAINER_NAME)
Fält som beskriver utseende och metod för panelundermenyn
SUBPANEL panelundermenyns namn { CONTAINER_NAME kontrollnamn KEYWORD värde KEYWORD värde ... }
Definitionen av en arbetsyteväxlare (SWITCH) beskriver:
arbetsyteväxlarens namn
Arbetsyteväxlarens position i rutan(POSITION_HINTS)
Fält som beskriver utseende och metod för arbetsyteväxlaren
SWITCH namn { CONTAINER_NAME rutans namn POSITION_HINTS position KEYWORD värde KEYWORD värde ... }
Huvudpanelen är Frontpanelen 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 Frontpanelens konfigurationsfil:
Systemtäckande: /etc/dt/appconfig/types/språk/*.fp
Egen: Hemmapp/.dt/types/*.fp
Definiera kontrollen i filen.
Använd fältet CONTAINER_NAME and 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 (från vänster till höger). Eftersom anpassningar har högre prioritet än inbyggda kontroller kommer den nya kontrollen att "knuffa" en befintlig kontroll på samma plats en plats åt höger.
Välj Starta om Arbetsytehanteraren på Arbetsyta-menyn.
Skapa en ikon för frontpanelkontrollen.
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 Frontpanelens konfigurationsfil:
Systemtäckande: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemmapp/.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 Frontpanelen.
CONTROL Trash { CONTAINER_NAME Top CONTAINER_TYPE BOX DELETE True }
Använd den här proceduren om du behöver ändra en kontrolldefinition - exempelvis ändra dess ikonbild.
Kopiera hela kontrolldefinitionen från /usr/dt/appconfig/types/språk/dtwm.fp till:
Systemtäckande: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemmapp/.dt/typesnamn.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 kontrollerna vars positioner du vill ändra) från /usr/dt/appconfig/types/språk/dtwm.fp till:
Systemtäckande: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemmapp/.dt/typesnamn.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 ... resten av kontrolldefinitionen }
CONTROL Help { POSITION_HINTS 5 LOCKED True ... resten av 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.
Definitionen /etc/dt/appconfig/types/C/SysControls.fp:
Control ImportantApplication { CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 2 ... }
Definitionen Hemmapp/.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 till kontrollen.
Värdet på fältet ICON kan vara:
Ett basfilnamn.
Basfilnamnet är namnet på filen som innehåller ikonen minus filnamnssuffixet för storlek (m och t) och bildtyp (bm och pm). Om t ex filer kallas MittSpel.l.pm och MittSpel.m.pm, används MittSpel.
Om du använder basfilnamnet måste ikonfilerna placeras i en mapp i ikonsökvägen:
Behållare på huvudpanelen: Hemmapp/.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
Huvudpanel - 48 gånger 48 bildpunkter (namn/dtwm.fp or namn/.dt.types/MyFrontPanel.fp)
Panelundermeny - 24 gånger 24 bildpunkter (namn.l.pm or namn.l.bm)
Huvudpanelen är Frontpanelens fönster minus panelundermenyerna.
Behållare på huvudpanelen Hemmapp/.dt/icons
Systemtäckande ikoner: /etc/dt/appconfig/icons/språk
Användarna kan skapa och ändra panelundermenyerna med hjälp av Frontpanelens menyer.
I det här avsnittet beskrivs hur du gör systemtäckande anpassningar, vilket kräver att du ändrar Frontpanelens konfigurationsfiler.
En panelundermeny är "kopplad" till en kontroll i huvudpanelen.
Kopplingen görs i panelundermenyns definition. CONTAINER_NAME anger vilken kontroll som panelundermenyn är kopplad till:
CONTROL kontrollnamn { ... } SUBPANEL panelundermenyns namn { CONTAINER_NAME kontrollnamn ... }
Leta reda på namnet 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 /etc/dt/appconfig/types/språk/*.fp.
Definiera panelundermenyn:
SUBPANEL panelundermenyns namn { CONTAINER_NAME kontrollnam 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 Frontpanelen:
Systemtäckande: /etc/dt/appconfig/types/språk/namn.fp
Egen: Hemmapp/.dt/typesnamn.fp.
Kopiera hela standarddefinitionen för SUBPANEL från /usr/dt/appconfig/types/språk/dtwm.fp till den nya filen:
SUBPANEL panelundermenyns namn { ... }
Ändra definitionen till panelundermenyn.
Spara den nya konfigurationsfilen.
Välj Starta om Arbetsytehanteraren på Arbetsyta-menyn.
Följande definition som finns i filen users/janne/.dt/types/PerApps.fp ändrar namn på panelundermenyn Egna program:
SUBPANEL PersAppsSubpanel { CONTAINER_NAME TextEditor TITLE Jannes program }
Skapa Frontpanelens konfigurationsfil: /etc/dt/appconfig/types/språk/namn.fp.
Definiera den systemtäckande kontrollen i filen.
Använd fältet CONTAINER_NAME och CONTAINER_TYPE för att ange behållare för kontrollen:
CONTROL kontrollnamn { CONTAINER_NAME panelundermenyns namn CONTAINER_TYPE SUBPANEL ... }
Välj Starta om Arbetsytehanteraren på Arbetsyta-menyn.
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 program.
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.
Frontpanelen kan konfigureras så att panelundermenyerna hålls öppna tills användaren stänger dem.
Skapa en ny konfigurationsfil för Frontpanelen i:
Systemtäckande: /etc/dt/appconfig/types/språk/*.fp
Egen: Hemmapp/.dt/types/*.fp
Kopiera standardbeskrivningen för PANEL från /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å Installera ikon-kontrollerna.
Det här sättet att anpassa är enkelt, men funktionaliteten omfattar bara en del av vad som kan göras med kontroller på Frontpanelen. En kontroll som har skapats med Installera ikon 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 på Frontpanelen.
Referensinformation om syntaxen för frontpanelskontroller finns i direkthjälpen (man) för dtfpfile(4X).
Strukturen på en definition till en frontpanelskontroll är:
CONTROL kontrollnamn { TYPE kontrolltyp CONTAINER_NAME värde CONTAINER_TYPE värde andra fält som definierar utseende och beteende }
Fältet TYPE i kontrolldefinitionen anger grundläggande beteende för den kontrollen.
Beskrivning
Kontrollen kör en angiven funktion när användaren klickar på kontrollen eller släpper en fil på den.
Upptaget-lampa. Kontrollen blinkar (växlar bilder) när en funktion startas
Ett klientfönster i Frontpanelen.
Klocka.
Visar aktuellt datum.
Representerar en fil. När du väljer kontrollen körs standardfunktionen för den filen.
Detta avsnitt beskriver hur en kontroll och olika kontrolltyper skapas.
Om kontrollen ska ha någon av fälten PUSH_ACTION eller DROP_ACTION definierade skapar du motsvarande funktionsdefinitioner. Dessa funktioner 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 ikonadresser finns i "Ikonbildsfiler".
Skapa en ny konfigurationsfil för Frontpanelen i:
Systemtäckande: /etc/dt/appconfig/types/språk/*.fp
Egen: Hemmapp/.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 när du definierar kontrollens funktion:
TYPE: Anges som icon
PUSH_ACTION: Anger namnet på funktionen som ska köras
Följande kontroll, som placeras på panelundermenyn Egna program, kör ett spel som användaren har lagt in:
CONTROL Kula { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON kula PUSH_ACTION RunBallGame HELP_STRING "Välj den här kontrollen om du vill spela Kulspelet." }
Följande kontroll placeras i det övre vänstra hörnet av arbetsyteväxlaren. Den startar en funktion 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 om du vill köra cutdisp." PUSH_ACTION CutDisp }
Använd dessa fält om du vill definiera kontrollens funktion.
TYPE: Anges som file
PUSH_ACTION: Anges som Open
Det måste finnas en Open-funktion 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. Funktionen Open för *.txt -filer är en del av standardfunktionsdatabasen.
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 funktion som ska köras när användaren släpper en fil på kontrollen. Funktionen måste kunna acceptera filargument.
En kontrolldefinition innehåller ofta fälten PUSH_ACTION och DROP_ACTION. Du kan använda samma funktion för en dra och släpp-funktion.
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 dessa fält om du vill definiera kontrollens funktion.
TYPE: Anges 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, när den väljs, ska fungera som en fil när du dubbelklickar på filens ikon i Filhanteraren.
ICON och ALTERNATE_ICON: Beskriver de bilder som används för att ange ändrad och icke ändras 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 blir icke-tom.
FILE_NAME: Anger namnet på den fil som ska övervakas.
Följande kontroller letar exempelvis efter en fil med namnet meetings som ska överföras till ditt system med hjälp av anonym ftp. Kontrollen placeras i underpanelmenyn 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 växlingskontroll kontrollerar om den process som ska startas 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 dessa fält om du vill definiera kontrollens funktion.
PUSH_RECALL: Anges till True.
CLIENT_NAME: Anger namnet på kontrollens klient.
Värdet på CLIENT_NAME måste matcha 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 funktionen som körs när användaren klickar på kontrollen.
Följande kontroll kör en förekomst av ett program vars funktion 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 på Frontpanelen. Du kan t ex placera en systembelastningsmätare i Frontpanelen genom att skapa en klientfönsterkontroll för xload.
Använd följande fält för att definiera kontrollens funktion:
TYPE: Anges till client.
CLIENT_NAME: Anger vilken klient som ska startas.
Värdet på CLIENT_NAME måste matcha 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 funktionen:
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 animeringsnamn { icon_image [fördröjning] icon_image [fördröjning] ... }
där fördröjning är tidsförskjutningen mellan animeringsikonerna i 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 avsnitts-ID
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 rutans namn NUMBER_OF_ROWS 3 ... }
Skapa en konfigurationsfil för Frontpanelen 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 Frontpanelens syntax för PANEL kan du:
Ändra positionen för Frontpanelen
Ändra fönstrets detaljer
Ange utseende och metod för kontrollerna
Standardbeskrivningen för 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 till Frontpanelen i /etc/dt/appconfig/types/språk eller Hemmapp/.dt/types.
Kopiera standardbeskrivningen för PANEL från /usr/dt/appconfig/nyspråk/dtwm.fp till den nya filen.
Redigera PANEL-beskrivningen.
Den nya PANEL-beskrivningen har högre prioritet än standardbeskrivningen.
Följande panel finns i det övre högra hörnet.
PANEL SpecialFrontPanel { PANEL_GEOMETRY -1+1 ... }
Lägg till följande rad till definitionen av PANEL:
DISPLAY_CONTROL_LABELS True
Lägg till fältet LABEL för 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 frontpanel.
För att undvika konflikt med Frontpanelens inbyggda komponenter bör en helt ny frontpanel använda nya namn för PANEL och andra behållare.
Skapa PANEL-komponenten för den nya Frontpanelen. Ge den ett unikt namn:
PANEL frontpanelnamn { ... }
Skapa nya rutor och kontroller. Använd nya namn på behållarna.
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 standardfrontpanelen så att dess kontroller ordnas i tre rader.
Kopiera /usr/dt/appconfig/types/språk/dtwm.fp till Hemmapp/.dt.types/MyFrontPanel.fp. Tilldela filen skrivbehörighet.
Det är den här filen du redigerar för att skapa en ny frontpanel.
Ändra namnet på Frontpanelen:
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:
Clock
Date
Home
TextEditor
Ändra CONTAINER_NAME för följande kontroller till NewFrontPanelBottom:
Printer
Style
Applications
Help
Trash
Ändra CONTAINER_NAME för arbetsyteväxlaren till NewFrontPanelMiddle.
Ange resursen:
Dtwm*frontPanel*name: NewFrontPanel
Välj Starta om Arbetsytehanteraren på Arbetsyta-menyn.