Mateusz Srebrny 15 grudnia 2003 Motif, okienka i obiekty Mateusz Srebrny 15 grudnia 2003
Mateusz Srebrny 15 grudnia Plan The X Window System widgety callbacki Motif obiektowość w bibliotekach w C Lesstif zastosowania
Mateusz Srebrny 15 grudnia The X Window System protokół model klient-serwer Cechy: klient i serwer w różnych miejscach klient nie zajmuje się sprzętem wielu klientów lub wiele serwerów naraz serwer może przekazywać informacje
Mateusz Srebrny 15 grudnia Serwer i okna klient – co najmniej jedno okno drzewo okien (root window) okna są zarządzane przez serwer klienci pośrednio kontrolują swoje okna inne zasoby: pixmap, colormap, font, kursor, kontekst graficzny, property
Mateusz Srebrny 15 grudnia Interakcja klient-serwer Klient wysyła zapytania (request) Serwer odsyła odpowiedzi (reply) Serwer odsyła raport o błędzie (error) Serwer zawiadamia o zmianie stanu wysyłając zdarzenia (event)
Mateusz Srebrny 15 grudnia Zdarzenia Efekt zapytania bądź działania użytkownika Klient może posłać zdarzenie klientowi Klient prosi o konkretne zdarzenia Asynchroniczne przetwarzanie Aplikacja zwykle w pętli czeka na zdarzenie Sporo zdarzeń jest stemplowanych czasem
Mateusz Srebrny 15 grudnia Biblioteka Xlib interfejs protokołu od strony klienta (C): tworzenie/operowanie podstawowymi zasobami buforowanie/kolejkowanie zapytań i zdarzeń struktury danych reprezentujące zdarzenia niezależne sprzętowo operacje I/O Xrm (resource manager)
Mateusz Srebrny 15 grudnia X Toolkit Intrinsics (Xt) wyższy poziom niż Xlib Trzy główne aspekty: widgety = dane + interfejs dla użytkownika zarządzanie geometrią widgetów rozsyłanie ( dispatching ) zdarzeń do widgetów
Mateusz Srebrny 15 grudnia Widgety data abstraction built on an object metaphor stan, procedury, klasa, instancje pojedyncze dziedziczenie las instancji widgetów Przykłady: przycisk, lista, etykieta, menu, kontener, scrollbar
Mateusz Srebrny 15 grudnia Obsługa zdarzeń - callbacki oczekiwanie na zdarzenie przesłanie do odpowiedniego widgetu tablica translacji: opis zdarzenia akcja akcja zwrotnie woła callback Efekt: aplikacje są sterowane zdarzeniami (event-driven)
Mateusz Srebrny 15 grudnia Motif graficzny interfejs użytkownika (GUI) mechanizmy komunikacji aplikacji z użytkownikiem zbiór widgetów (ogólnych, wyspecjalizowanych) styl, zaznaczanie, dragdrop, XmString, UIL X Xlib Xt Motif
Mateusz Srebrny 15 grudnia Widgety w Motifie Trzy grupy: Gadżety (gadgets, primitives) Manadżery (managers) Powłoki (shells)
Mateusz Srebrny 15 grudnia Realizacja obiektowości struktura WidgetClass: superclass, name, widget_size, konstruktory, itp. struktura Widget: self, widget_class, parent, destroy_callbacks funkcje biorą Widget Przydatne metody: XtIsSubclass(Widget, WidgetClass), XtSuperclass(Widget), XtClass(Widget), XtParent(Widget)
Mateusz Srebrny 15 grudnia Lesstif Motif długo nie był wolnodostępny Powstał klon – Lesstif (LGPL) OpenMotif – bardziej otwarty Motif
Mateusz Srebrny 15 grudnia Aplikacje używające Motifa gVim GNU Emacs Star Office xpdf
Mateusz Srebrny 15 grudnia Bibliografia MOTIF 2.1 – Programmers Guide Inside LessTif, D.Backx, M.Miers, C.Toshok, H.Albrecht