Motif, okienka i obiektowość
Nie sposób mówić o Motifie nie napomykając choćby o Xach (The
X Window System) wraz z bibliotekami Xlib oraz Xt.
Tym bardziej, że architektura Xów jest obiektowa, a aplikacje
(klienci) dowiadują się o działaniach użytkownika i innych klientów
za pomocą mechanizmu zdarzeń.
Motif to Graficzny Interfejs Użytkownika (GUI),
narzędzie, dzieki któremu program może reagować na zachowanie użytkownika i
wyświetlać mu efekty swojego działania. Motif udostępnia mechamizmy do
komunikacji pomiędzy programem a użytkownikiem.
Interakacja ta odbywa się za pośrednictwem tzw. widgetów,
graficznie reprezentowanych obiektów. Tak jak wszystkie porządne obiekty
widgety mają atrybuty, metody, klasy i hierarchię dziedziczenia.
Tradycyjnie Xlib, Xt i Motif to biblioteki w języku C, który oficjalnie
obiektowości nie wspiera. Mimo to obiektowe podejście do programowania
przyświeca architekturze Xów i wspomnianych bibliotek. Wszelkiego
rodzaju zalecenia dotyczące programowania aplikacji dla Xów
sprowadzają się do typowych obiektowych metod, takich jak na przykład
oddzielanie
graficznego interfejsu od reszty programu.
Innym ciekawym mechanizmem, który jest bardzo intensywnie używany we
wspomnianych bibliotekach jest mechanizm funkcji zwrotnych (callbacków),
dzięki którym
aplikacje reagują na zdarzenia generowane przez Xy. Callback to metoda,
którą obsługa zdarzenia (biblioteka Xt) woła, gdy nadejdzie oczekiwane
zdarzenie. Callbacki są powiązane z widgetem, który chce reagować na
zdarzenia.
Na koniec krótko opowiem o prawnej sytuacji Motifa (licencja) i
jego otwarto-źródłowym klonie, LessTifie. Będzie to okazja
do rzucenia okiem jak obiektowość jest fizycznie implementowana w C.