Leksykon IT › Programowanie › Kontekst aplikacji (Xt)

Kontekst aplikacji (Xt)

Programowanie Svenska → Zaktualizowano: 2026-10-10

Kontener Xt na wszystko, co należy do programu, a nie do okna — połączenia z wyświetlaczami, kolejkę zdarzeń, liczniki czasu i pracę w tle — wprowadzony po to, by pozbyć się zmiennych globalnych.

Pierwsza wersja X Toolkit Intrinsics zakładała jeden program, jeden wyświetlacz i jedną pętlę zdarzeń, a stan trzymała w zmiennych globalnych: wywoływało się XtInitialize i XtMainLoop i godziło się z tym, że biblioteki nie da się użyć dwukrotnie w tym samym procesie. X11R3 w 1988 roku wprowadziło typ XtAppContext jako jawnego właściciela tego wszystkiego. Program tworzy kontekst, otwiera w nim wyświetlacze, rejestruje liczniki czasu przez XtAppAddTimeOut, deskryptory plików przez XtAppAddInput i pracę w tle przez XtAppAddWorkProc, po czym uruchamia XtAppMainLoop, która czeka na wszystkie naraz. R4 zebrało inicjalizację w XtAppInitialize, a baza zasobów z Xresources jest ładowana osobno dla każdego wyświetlacza wewnątrz kontekstu.

Stare wywołania zostały, oznaczone jako przestarzałe i przepisane wewnętrznie na ukryty kontekst domyślny, więc przykłady z podręczników używały ich jeszcze przez lata. Możliwość posiadania kilku kontekstów — biblioteka uruchamiająca własne Xt wewnątrz cudzego programu Xt — była rzadko wykorzystywana. Prawdziwym zyskiem było to, że pętlę zdarzeń można było przejąć i napędzać samodzielnie za pomocą XtAppPending i XtAppProcessEvent, zamiast oddawać program w ręce XtMainLoop i nigdy go nie odzyskać. Wzorzec, w którym jeden obiekt posiada liczniki, źródła wejścia i pętlę główną, przeszedł do GMainContext z GLib i QCoreApplication z Qt.

← Wróć do leksykonu