ScreenLib - coś dla programistów GUI

12 wrzesień 2006
Autor :   Rutkowski, Maciej
Podczas gdy użytkownicy mobilnych Windows Forms mieli od dawna przybijanie kontrolek do brzegów ekranu, do innych kontrolek, automatyczne dostosowywanie ich do rozmiaru ekranu, brakowało podobnych mechanizmów w standardowym modelu okienkowym Win32. Microsoft postanowił ukrócić męki programistów C/C++ aplikacji Windows Mobile, borykających się z koniecznością dostosowywania interfejsów graficznych do przeróżnych formatów ekranów urządzeń Pocket PC i Smartphone, wypuszczając małą biblioteczkę, która wykonuje za nas najbardziej potrzebne i w gruncie rzeczy proste i powtarzalne czynności. Nazywa się ScreenLib i ma postać dwóch plików, które należy po prostu włączyć do projektu.
Jednym z problemów, z jakimi borykali się programiści Palm OS, była dość spora różnorodność formatów ekranów, jakie stosowali producenci sprzętu. Trzeba było dostosować aplikacje do każdego z nich - można było najwyżej liczyć na pomoc sprzętu w kwestii podwajania gęstości grafiki, tj. przystosowanie aplikacji 160x160 do ekranu 320x320. Pocket PC wtedy był ostoją konserwatyzmu w tej kwestii - zawsze i wszędzie 240x320. Wraz z wejściem Windows Mobile 2003 SE, Microsoft zasugerował, że specyfikacja Pocket PC pozwoli popuścić nieco wodzy fantazji producentów.
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.
Tag :


O Serwisie

Wortal PDAclub.pl to serwis internetowy zajmujący się tematyką technologii mobilnych. U nas znajdziesz najnowsze informacje o smartfonach, tabletach, smartwatch i innych urządzeniach mobilnych pracujących zarówno pod kontrolą Apple iOS jak i Google Android czy też Windows. PDAclub.pl to także jednao z najstarszych forów internetowych, gdzie każdy użytkownik znajdzie fachową pomoc.

PDAclub POLECA


W ramach naszej witryny stosujemy pliki cookies w celu świadczenia usług na najwyższym poziomie, w tym w sposób dostosowany do indywidualnych potrzeb. Korzystanie z witryny bez zmiany ustawień dotyczących cookies oznacza, że będą one zamieszczane w urządzeniu końcowym. Można dokonać w każdym czasie zmiany ustawień dotyczących cookies. Więcej szczegółów w naszej Polityce Prywatności. Akceptuję otrzymywanie plików cookies z serwisu pdaclub.pl. Akceptuję