Xwindow WinAPI

Transkrypt

Xwindow WinAPI
PAIN Kolos 1 Odpowiedzi
Xwindow
1) Opisać Widget
Widgety są˛ to elementy graficznego interfejsu użytkownika. Są nimi wszystkie widoczne elementy aplikacji (przyciski,
paski menu, paski przewijania, linie edycyjne). Widget może zawierać pewna˛ liczbę˛ potomnych widgetów (child
widgets). Widgety potomne sa˛ wyświetlane wewnątrz obszaru widgetu rodzica (parent widget). Widget, który nie
posiada rodzica jest tzw. głównym widgetem aplikacji (oknem). Posiada on zazwyczaj pasek zadań (belkę tytułowa˛),
której wygląd i opcje zalezą od systemu operacyjnego (w przypadku X Window od Window Manager’a).
2) W jaki sposób zarządca okien umożliwia zarządzanie oknami
Dodaje okno pomiędzy „root window”, a głównym oknem aplikacji oraz elementy dekoracyjne ( pasek tytułu, przyciski
). Określa które okno posiada input focus oraz umożliwia zmianę położenia i rozmiaru okna.
3) Co wprowadza kontrolki, przyciski, etc.; podać przykład
Obiekty ekranowe wprowadza biblioteka X Toolkit Intrinsics
4) Jak odbywa się komunikacja aplikacji bazującej na X Toolkit z Xt Intrinsics
Za pomocą Widgetów. Jedynie na samym początku komunikuje się bezpośrednio podczas tworzenia widgetów.
5) Co wprowadza obiekty ekranowe?
Widget
6) Jak aplikacja komunikuje się z Widgetami?
Za pomocą callback i event handler
7) Różnice miedzy X window a MS Windows (architektura, zarządca okien, kontrolki)
Xwindow:
– zorientowany sieciowo, niezależny od systemu operacyjnego,
– okno zapamiętuje swoje dziecko i rodzica,
– samemu trzeba tworzyć interfejs użytkownika,
– przezroczysty sieciowo,
– architektura klient-serwer
Windows:
– zorientowany sprzętowo
– okno zapamiętuje dodatkowo brata
– zdefiniowany interfejs użytkownika
– biblioteki dynamiczne
– komunikacja między aplikacjami
8) Wigdet i Gadget - czym się różnią?
Gadget: nie reprezentuje okna, musi mieć rodzica i w nim może wyświetlać swoje wyjście
Widget: nie musi mieć rodzica, może być oknem. No i window+gadget = widget
9) DrawLine() operuje na jakich współrzędnych w Xwindows?
Początkowe punkty x0,y0 oraz końcowe x1,y1, zorientowane wedle lewego górnego rogu ramki
10) XFlush:
– opróżnia bufor poleceń użytkownika, wysyła zawartość do X Serwera
11) XServer
– Przechowuje zasoby okna, kontekstu graficznego, czcionki, kursora, pixmaps, colormaps
– wysyła do klienta zdarzenia input event oraz expose event
– odbiera od klienta żądania w celu wykonania operacji
WinAPI
1) DrawLine() operuje na jakich współrzędnych w WinApi?
Początkowe x,y oraz wysokość i szerokość
2) Jakie współrzędne przekazywane są z wiadomością WM_MOUSEMOVE
LOWORD(lParam) = x, HIWORD(lParam) = y
3) WM_PAINT
Wiadomość mówiąca o tym, że jest potrzeba odświeżenia części okna. Może przekazywać informacje o tym, która
część okna wymaga odświeżenia.
4) Zalety bibliotek dynamicznych
– Podział programu na moduły, które mogą być wykorzystywane niezależnie przez aplikacje
– Możliwy do realizacji system wtyczek
– Mniejsza zajętość pamięci operacyjnej i dyskowej
5) Wady bibliotek dynamicznych
– Biblioteka musi być w systemie
– Problemy z rożnymi wersjami tej samej biblioteki
6) Jak działa SendMessage (czy wstawia do kolejki czy obsługuje od razu itp.)
Wysyła wiadomość obsługiwaną poza kolejką i czeka na zwrócenie rezultatu. Komunikat obsługiwany jest od razu.
7) Jak działa PostMessage (czy wstawia do kolejki czy obsługuje od razu itp.)
Wysyła wiadomość która zostaje wstawiona przeważnie na koniec kolejki. Funkcja od razu kończy swoje działanie, nie
czekając na rezultat.
8) Rejestrowanie wiadomości
– Rejestracja nazw wiadomości globalna dla całego systemu
– unikamy konfliktów identyfikatorów
9) Ile razy w trakcie sek włączy się obsługa WM_TIMER, jeżeli zainicjujemy go wartością 45 ms:
- o dokładnie 22 lub 23 razy
- o 0 - 20 razy
- o 1 - 23 razy ← ?
10) Wiadomość WM_TIMER:
– Jest kolejkowana
– Sklejana ( może być tylko jedna dla jednego zegara )
MFC:
1) Do czego służą: dokument, widok
– Dokument: Przechowywanie danych związanych z dokumentem, zapis i odczyt danych, tworzenie pustego
dokumentu, zamykanie dokumentu i usuwanie kontekstu dokumentu dla SDI
– Widok: Wizualizacja danych, reakcja na zmiany w dokumencie, interakcja z użytkownikiem, zapis wyniku
operacji do dokumentu, zapamiętywanie cząstkowych operacji
2) Hierarchia okien, relacje występujące między oknami
CObejct → CCmdTarget → CWnd → CFrameWnd, CView, Cdialog, Control Bars
3) Do czego służy UpdateAllViews (wymienione były też parametry lHint i pHint)
Uaktualnia wszystkie widoki na dokument ( wywołuje OnUpdate na rzecz każdego ). Można przekazać wskaźnik na
obiekt w pHint
4) Menu systemowe:
5) Opisać DDX i DDV
DoDataExchange: służą do wymiany danych między zmiennymi a kontrolkami
DoDataValidate: służą do sprawdzania poprawności wprowadzanych danych
6) Diagram zależności obiektów w MDI
7) Diagram zależności obiektów SDI
8) Coś o aplikacjach SDI (ile dopuszczalnych widoków, dokumentów itp.)
– zawsze jeden otwarty dokument, jeden obiekt reprezentujący dokument naraz
– po zamknięciu dokumentu obiekt go reprezentujący jest używany do obsługiwania kolejnego dokumentu
– tylko jeden szablon dokumentu
9) Coś o aplikacjach MDI
– może być otwarty więcej niż jeden dokumentów
– po zamknięciu dokumentu usuwany jest obiekt go obsługujący
– więcej niż jeden szablon dokumentu
10) Spliter statyczny ( wybrać jedno )
– 4 widoki
– dowolna liczba widoków
– widoki różnych typów
– użytkownik definiuje liczbę widocznych widoków
11) CObject realizuje:
– Serializację
– Wsparcie dla diagnostyki
– Uzyskiwanie informacji o klasie w trakcie pracy programu
12)Funkcje obsługujące zdarzenia z menu mogą znajdować się w...
– Głownym oknie aplikacji ( CMainWindow)
– Aktywny Widok
– Aktywny Dokument
– Szablon dla aktywnego dokumentu
– Aplikację
13) Realizacja obsługiwania wiadomości poprzez różne klasy, jak się odbywa za kurtyną
Aktywny widok → Okno ramki → Obiekt aplikacji → Proces
→ Dokument → Szablon Dokumentu