BT Sözlüğü › Programlama › Sanal bağlamalar (Motif)

Sanal bağlamalar (Motif)

Programlama Svenska → Güncellendi: 2026-10-11

Motif’in fiziksel tuşlarla widget davranışı arasındaki katmanı: kod Escape ve F1’i değil osfCancel ve osfHelp’i dinler, bunların önünüzdeki klavyede ne anlama geldiğine ise bir bağlama dosyası karar verir.

Motif; DEC’in LK201’i, Sun’ın Type 4’ü, HP ve IBM klavyeleri üzerinde çalışmak zorundaydı; hepsinde yardım, silme ve gezinme için farklı tuşlar, bazen aynı tuş adı için farklı keysym’ler vardı. OSF bunu, style guide’ın ve her widget’ın çeviri tablosunun sanal keysym’lerle konuşmasını sağlayarak çözdü: osfActivate, osfCancel, osfHelp, osfMenuBar, osfBackSpace, osfDelete, osfPageUp, osfPrimaryPaste ve otuz kadar daha. Başlangıçta bunlar, kök penceredeki _MOTIF_DEFAULT_BINDINGS özelliğinden, ev dizinindeki .motifbind dosyasından ya da defaultVirtualBindings kaynağından gerçek keysym’lere çevrilir; hiçbiri yoksa X sunucusunun üretici dizesine göre seçilen bir üretici tablosundan.

xmbind aracı bir bağlama dosyasını okuyup kök pencereye koyar ve Motif üretici başına hazır dosyalarla gelirdi. Sonuçta aynı ikili dosya farklı donanımlarda doğru davrandı ve Escape’i yanlış yerde olan kullanıcı bunu tek satırla düzeltebildi: osfCancel : <Key>Escape. Aynı zamanda klasik bir sinirin kaynağıydı: Backspace’in yanlış yönde sildiği bir Motif programı, neredeyse her zaman osfBackSpace ve osfDelete’in o klavye için yanlış keysym’e işaret ettiği anlamına gelirdi; xmodmap bunu düzeltemezdi, çünkü hata bir katman yukarıdaydı.

← Sözlüğe dön