Leksykon IT › Programowanie › Tablica translacji (Xt)

Tablica translacji (Xt)

Programowanie Svenska → Zaktualizowano: 2026-10-09

Tekstowy format Xt do wiązania klawiszy i przycisków myszy z nazwanymi akcjami widżetu, który można podmienić w ~/.Xresources bez ruszania programu.

Każdy widżet Xt ma zasób translations, czyli tablicę, której lewa strona to sekwencja zdarzeń, a prawa to jedna lub więcej akcji: <Key>q: quit(), Ctrl<Key>s: search(forward), Shift<Btn1Down>: select-start(). Zdarzenie zapisuje się jako modyfikatory, typ i szczegół, a kilka można łączyć w łańcuch dla podwójnych kliknięć lub sekwencji klawiszy. Akcje definiuje klasa widżetu albo rejestruje program przez XtAppAddActions, a dopasowaniem w miarę napływu zdarzeń zajmuje się Translation Manager Xt.

Sedno w tym, że tablica jest zasobem jak każdy inny. Dyrektywy #override, #augment i #replace rozstrzygają, czy linie użytkownika trafiają na wierzch, pod spód, czy zamiast własnych linii widżetu, więc wiersz taki jak XTerm*VT100.translations: #override Shift <KeyPress> Insert: insert-selection(PRIMARY) zmienia zachowanie xterma bez rekompilacji. Była to odpowiedź lat 80. na konfigurowalne skróty, i to niezwykle potężna: xterm potrafi wysyłać dowolne ciągi przez string(), a edytory Athena dało się przemapować klawisz po klawiszu. Składnia była też na tyle krucha — jedno brakujące \n\ w pliku zasobów i cała tablica po cichu znikała — że większość ludzi poprzestawała na wklejaniu linii z Usenetu. GTK i Qt porzuciły ten mechanizm całkowicie; tam wiązania są zaszyte na stałe, a w zamian dostaje się okno preferencji.

← Wróć do leksykonu