Så skapar du en Jump list i Windows 7

En Jump list i Windows 7 är ett sätt att skapa en intuitiv snabbare navigering för användaren direkt åtkomlig i aktivitetsfältet (Taskbar). I och med införandet av Jump list kan man säga att alla applikationer har fått möjlighet till en egen mini-startmeny som du som utvecklare kan anpassa.

Ett exempel är den Jump List som Windows Live Messenger-klienten erbjuder:

MSNJumpList

Här är en översikt över vilka delar en Jump list kan innehålla:

image_4

En Jump List kan alltså innehålla:

  • Destinationer, eller sökvägar, till information eller filer.

    Dessa delas in i

    • en fastlåst sektion (Pinned category),
    • en sektion med nyligen använda (Known categories)
    • eventuella egendefinierade sektioner (Custom Categories).
  • Verbi form av ‘Tasks’, d.v.s. uppgifter som kan utföras av användaren. En typisk sådan kan t.ex. vara att spola fram en låt i en mediaspelare.

Som utvecklare kan du använda dig av det API som aktivitetsfältet exponerar genom ett antal COM–interface för att styra funktionaliteten i din applikations Jump List.

Application ID

Till att börja med så är det rekommenderat att du ger din applikation ett ‘Application ID’. Applikations ID:t används för att gruppera applikationer och processer i aktivitetsfältet. Alla applikationer och processer som har samma Applikations ID kommer att dela Jump List och aktivitetsfältsikon med varandra. Om du t.ex. har flera instanser av Internet Explorer igång så kommer dessa visas som en ikon i aktivitetsfältet och de kommer också att ha en gemensam Jump List där du ser de senaste adresserna som du surfat till.

Om du inte ger din applikation ett ID kommer operativsystemet att automatiskt tilldela ett ID till applikationen. Men rekommenderat är alltså att du själv kontrollerar detta för att kunna styra grupperingen i aktivitetsfältet. ID:t används också för att registrera din applikation för kända filtyper – för att automatiskt kunna hålla reda på och visa senast öppnade dokument i Jump List.

Se bloggposten ‘Developing for the Windows 7 Taskbar – Application ID’ för hur du skapar ett Application ID.

Destinations

För att din applikation ska kunna öppna destinationer/sökvägar som visas i Jump List så måste en registrerad ‘file handler’ finnas för den aktuella filtypen i registret. Det innebär inte att din applikation måste vara ‘default handler’ för den aktuella filtypen, men en registrering måste alltså finnas där.

När din applikation är registrerad för en viss filtyp kommer filer som användare öppnar via filutforskaren genom dubbelklick eller som öppnas via Common File Dialog (CFD) automatiskt att läggas till listan över nyligen använda ‘Recent’ – i applikationens Jump List.

Om du vill skapa en egen kategori med en anpassad lista kan du göra det genom ett interface som heter ICustomDestinationList. Bloggposten ‘Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 2’ går igenom det i detalj med kodexempel i C++ och C#.

Tasks

Som du såg i översiktsbilden ovan så kan du också skapa ‘Tasks’, alltså verb som är direktingångar till funktionalitet i din applikation. I exemplet Windows Live Messenger ovan så är det endast ‘Tasks’ som användaren kommer åt – ändra status, logga ut, navigera till MSN m.m.

Ett ‘Task’ är ett sätt att erbjuda ett gränssnitt för användaren att direkt från Jump List kunna köra din applikations exekverbara fil, på samma sätt som om du hade anropat den från en kommandoprompt med tillhörande argument.

‘Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 3’ innehåller bra exempel i C++ och C# på hur du lägger till egna ‘Tasks’ för din applikation.

Om du utvecklar i .NET så rekommenderas också varmt att du laddar hem Windows® API Code Pack for Microsoft® .NET Framework som innehåller wrappers runt bl.a. de COM-interface som du använder för att skapa och hantera Jump List-objekt. Den innehåller också en mängd färdiga bra demoexempel som du kan lära ifrån.