ScreenLib - coś dla programistów GUI
Pojawiła się dwa razy wyższa rozdzielczość, 480x640 i kwadratowe ekrany (240x240 i 480x480). Do tego wszystkiego możliwość zmiany orientacji z portrait na landscape oraz telefony Smartphone i ich rozdzielczość 176x220 tudzież kwestia stosowania w nich większych czcionek.
Ta różnorodność doprowadziła do konieczności sprawdzania wszystkich tych przypadków i ustawiania kontrolek w dialogach i oknach tak, by użytkownik nie tracił funkcjonalności i nie musiał przemieszczać się po formatce przewijadłem. Biblioteka WTL w swoich specjalizowanych dla Windows Mobile klasach okien pozwoliła na tworzenie alternatywnych wersji dialogów przystosowanych do różnych rozdzielczości i orientacji. Update: Małe sprostowanie - WTL zawiera jednak klasę dialogów o zmiennych rozmiarach, która pełni działa podobnie jak ScreenLib, choć jest o wiele bardziej rozbudowana - CDialogResize. Działa dla wszystkich okien z kontrolkami, nie tylko dla dialogów.
Biblioteczka ScreenLib jednak reprezentuje podejście nieco podobne do tego zaprezentowanego w Windows Forms - przybijanie brzegów kontrolek do krawędzi dialogów, ustawianie ich do lewej, prawej, centrowanie, do dołu, do góry, a także dopasowywanie szerokości w ustalonym kierunku. Aby tego dokonać, wystarczy zamodelować odpowiednie zachowanie, przez dodanie paru wywołań metod statycznych klasy CScreenLib w miejscu obsługi komunikatu WM_SIZE. W tych to metodach odbywa się cała magia.
Biblioteka nie jest jeszcze skończona, nie potrafi dopasowywać szerokości kontrolki w kierunku, w którym by trafiła na inną. Na razie tym samym nie załatwimy w łatwy sposób sytuacji, w której mamy Edit Box, obok przycisk, a edit ma się dostosować do szerokości dialogu zmniejszonej o rozmiar przycisku, dopasowywanego do tego do prawej krawędzi ekranu.
Oczywiście każdy kto miał już nieco do czynienia z takim dość powszechnym problemem, mógłby bez problemu podobną bibliotekę pomocniczą wykonać. Ta jednak jest firmowana emblematem giganta z Redmond, a to znaczy że nadal będzie z pewnością dostępna dla wszystkich, będzie rozwijana i dostosowywana do różnych przypadków, na jakie trafią jej użytkownicy i doświadczeni współtwórcy.
Mam nadzieję, że podobne rozwiązanie zostanie wprowadzone jako metody pomocnicze w klasach okien w WTL, by była alternatywna metoda przystosowywania aplikacji do różnych typów ekranów.
Microsoft udostępnił screencast pokazujący przypadki użycia biblioteki. Ta jest do pobrania z wpisu w blogu jednego z członków zespołu Windows Mobile w Redmond.