IT-lexikon › Programmering › Tangentbordstraversering (Motif)

Tangentbordstraversering (Motif)

Programmering In English → Uppdaterad: 2026-10-10

Motifs modell för att nå varje knapp och fält utan mus: widgets grupperas i tabbgrupper, Tab hoppar mellan grupperna, piltangenterna inom dem, och en markeringsram visar var fokus står.

OSF:s stilguide krävde att allt i ett Motif-program skulle gå att göra från tangentbordet, en ovanlig ambition i en Unix-värld där fokus följde muspekaren och Tab var ett tecken. Lösningen är att varje widget får resursen XmNnavigationType: XmTAB_GROUP gör den till en egen grupp, XmNONE till en medlem i förälderns, och XmEXCLUSIVE_TAB_GROUP till en grupp som sköter piltangenterna själv. Tab och Shift+Tab flyttar mellan grupperna, de virtuella tangenterna osfUp, osfDown, osfLeft och osfRight inom dem, så att en rad radioknappar i en XmRowColumn går att bläddra genom med pilarna. Den som har fokus ritas med en ram vars tjocklek är XmNhighlightThickness, Motifs "location cursor".

Allt styrs av shellens XmNkeyboardFocusPolicy: XmEXPLICIT, som är standard, ger klicka-för-fokus och traversering; XmPOINTER lämnar fokus till muspekaren och stänger av det mesta. Program flyttar fokus med XmProcessTraversal, och XmNtraversalOn tar ett enskilt fält ur rundan. I Motif 1.0 och 1.1 fick programmeraren själv anropa XmAddTabGroup för varje grupp; 1.2 från 1992 gav rimliga standardvärden, så att behållare blev grupper och textfält och listor egna grupper utan åtgärd. Resultatet är ett av de drag Windows- och Mac-användare kände igen i CDE: att Tab gör vad man väntar sig.

← Tillbaka till lexikonet