IT-lexikon › Programmering › XmList

XmList

Programmering In English → Uppdaterad: 2026-10-10

Motifs listwidget: rader av XmString med fyra urvalsmodeller, från en rad i taget till Shift- och Ctrl-klick, och alltid med ett dubbelklick som öppnar.

Listan tar en array av XmString i XmNitems med XmNitemCount, eller fylls på efter hand med XmListAddItem och XmListAddItems. XmNvisibleItemCount bestämmer hur många rader som syns, och XmCreateScrolledList lägger widgeten i ett XmScrolledWindow med rullningslist. Vad ett klick gör styrs av XmNselectionPolicy: XmSINGLE_SELECT väljer en rad och avmarkerar den vid nästa klick, XmBROWSE_SELECT låter markeringen följa en dragande mus, XmMULTIPLE_SELECT växlar varje rad för sig och XmEXTENDED_SELECT ger den modell alla lärt sig från filhanterare, med Shift för intervall och Ctrl för enstaka tillägg. Varje modell har sin egen callback, och XmNdefaultActionCallback svarar på dubbelklick.

Priset var XmString. Varje rad måste konverteras från char* med XmStringCreateLocalized och frigöras igen, och ett program som fyllde listan med tiotusen rader fick både känna konverteringskostnaden och lära sig att XmListAddItems var mycket snabbare än ett anrop per rad. XmFileSelectionBox består i grunden av två sådana listor, och det var så de flesta Unix-användare mötte widgeten utan att veta vad den hette.

← Tillbaka till lexikonet