Solaris Common Desktop Environment: Handbok för avancerade användare och systemadministratörer

Definiera kontroller i huvudgruppen

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:

Definitioner till kontroller i huvudgruppen

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
 }

Kontrolltyper

Fältet TYPE i kontrolldefinitionen anger grundläggande beteende för den kontrollen.

Kontrolltyp (TYPE)

Kontrollfunktion

icon (Standard.)

Kontrollen kör en angiven åtgärd när användaren klickar på kontrollen eller släpper en fil på den.

blank

Platshållare för att justera avstånd mellan kontroller.

busy

Upptaget-lampa. Kontrollen blinkar (växlar bilder) när en åtgärd startas

client

Ett klientfönster i huvudgruppen.

clock

Klocka.

date

Visar aktuellt datum.

file

Representerar en fil. När du väljer kontrollen körs standardåtgärden för den filen.

Skapa en ny kontroll

Detta avsnitt beskriver hur en kontroll och olika kontrolltyper skapas.

  1. 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.

  2. Skapa ikonbildens fil för kontrollen.

    Mer information om ikonstorlek, ikonnamn och ikonplaceringar finns i Ikonbildsfiler.

  3. Skapa en ny konfigurationsfil för huvudgruppen i:

    • För hela systemet: /etc/dt/appconfig/types/språk/*.fp

    • Egen: Hemkatalog/.dt/types/*.fp

  4. Lägg till kontrolldefinitionen i filen.

  5. Spara filen.

  6. Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.

Skapa en kontroll som kör en åtgärd när du klickar på den

Använd följande fält för att definiera kontrollens funktion:

Skapa en kontroll som öppnar en fil

Använd följande fält för att definiera kontrollens funktion:

Skapa en kontroll som fungerar som ett målområde

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
 }

Skapa en kontroll som övervakar filer

Använd följande fält för att definiera kontrollens funktion:

Skapa en växlingskontroll

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:

Skapa en klientfönsterkontroll

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.

  1. 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).

    • CLIENT_GEOMETRY: Anger den storlek, (i bildpunkter) som behövs för klientens huvudgruppsfönster.

      Direkthjälpen (man) för xwininfo(1) beskriver hur du tar reda på storleken på ett fönster i bildpunkter.

  2. Välj Starta om arbetsytehanteraren på Arbetsyta-menyn.

  3. Starta klienten från kommandoraden i ett terminalfönster.

    Följande kontroll visar t ex en belastningsmätare på 30 × 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
     }

Animera en kontroll

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:

  1. 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.

  2. 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
     	…
     }

Objekthjälp för kontroller på huvudgruppen

Det finns två sätt att göra hjälp till en kontroll tillgänglig: