W tym artykule znajdziesz kolejne pliki biblioteczne graficznego interfejsu użytkownika dla biblioteki SDL.
Opis instalacji biblioteki SDL znajdziesz w artykułach OL031, OL032 i OL034. Pliki biblioteki graficznej znajdziesz w SDL100. Sposób instalacji GUI dla SDL znajdziesz w lekcji OL043.
Poprzednia wersja GUI: GUI002 Następna wersja GUI: GUI004
gfxGUIObject
Klasa będąca podstawą wszystkich klas kontrolek naszego GUI.
tag - pole bez określonego znaczenia, może służyć do identyfikacji obiektu w wywoływanej przez niego funkcji type - umożliwia zdefiniowanie typu elementu, jeśli elementy różnią się w ramach danej klasy enabled - jeśli element jest aktywny, to zawiera true. Element zablokowany przechowuje tutaj false. sel - jeśli element jest wybrany - posiada skupienie wejścia, to pole zawiera true. open - niektóre elementy wymagają otwarcia podlisty kontrolek. W takim przypadku pole zawiera true. screen - wskaźnik struktury SDL_Surface definiującej używaną przez element powierzchnię graficzną. font - wskaźnik do zainicjowanej struktury gfxFont zawierającej opis używanej czcionki do wydruku tekstu rect - prostokąt obejmujący element na powierzchni graficznej text - wskaźnik bufora zawierającego tekst elementu call - funkcja wywoływana przy wyborze elementu. Parametrem funkcji jest wskaźnik wywołującego ją elementu ShrinkRect() - funkcja zwraca prostokąt elementu pomniejszony z każdej strony o jeden piksel - przydaje się przy rysowaniu wnętrza elementu MouseHit() - funkcja zwraca true, jeśli punkt x,y przekazany w parametrach wywołania znajduje się wewnątrz prostokąta elementu. Update() - funkcja uaktualnia obszar ekranu zajęty przez element
gfxButton
Klasa obsługująca przyciski akcji - prostokątne obszary, których kliknięcie powoduje wywołanie określonej funkcji. Dziedziczy wszystkie pola i funkcje z klasy gfxGUIObject.
gfxButton() - konstruktor klasy gfxButton:
gfxButton(tg,en,s,f,r,t,fn)
tg - identyfikator elementu
en - określa, czy przycisk ma być aktywny - true, czy zablokowany - false
s - wskaźnik struktury SDL_Surface, na której będzie rysowany przycisk
f - wskaźnik struktury gfxFont określającej czcionkę dla tekstu opisującego przycisk
r - prostokąt definiujący przycisk - wymiary są korygowane do szerokości i wysokości tekstu z marginesem 2 pikseli.
t - wskaźnik tekstu opisującego przycisk. Tekst powinien kończyć się znakiem o kodzie 0.
fn - wskaźnik funkcji wywoływanej przy kliknięciu przycisku myszką. Funkcja otrzymuje wskaźnik do przycisku.DoEvents() - funkcja obsługuje zdarzenia dla przycisku. Jeśli zdarzenie zostało obsłużone, to zwraca false - jest to informacja dla pętli obsługi zdarzeń, iż danego zdarzenia już dalej nie należy obsługiwać w innych elementach, ale oczywiście wszystko zależy od programisty.
DoEvents(e)
e - wskaźnik struktury SDL_Event.Refresh() - funkcja rysuje przycisk na powierzchni graficznej
gfxMenuItem
Klasa obsługuje elementy menu. Dziedziczy wszystkie pola i funkcje z klasy gfxGUIObject.
buf - wskaźnik obszaru pamięci, który przechowuje fragment powierzchni graficznej przykryty przez podmenu owner - zawiera adres klasy gfxMenu, która jest właścicielem tego elementu - umożliwia elementom menu dostęp do powierzchni graficznej oraz zestawu znaków next - wskaźnik następnego elementu na tym samych poziomie hierarchii struktury drzewa sub - wskaźnik głowy listy podmenu skojarzonego z tym elementem subrect - prostokąt podmenu, wykorzystywany do rysowania ramki otaczającej skojarzone elementy podmenu gfxMenuItem() - konstruktor klasy
gfxMenuItem(tg,en,t,fn,nmi,s)
tg - identyfikator umieszczany w polu tag
en - określa, czy element będzie wybieralny - true, czy zablokowany - false
t - wskaźnik tekstu dla elementu menu
fn - wskaźnik funkcji wywoływanej przy wyborze w menu tego elementu
nmi - wskaźnik następnego elementu na liście
s - wskaźnik głowy listy elementów podmenu~gfxMenuItem() - destruktor klasy DoEvents() - obsługa zdarzeń dla elementów menu.
DoEvents(e)
e - wskaźnik struktury SDL_EventFix() - oblicza rozmiar prostokąta subrect dla podmenu. Ustawia wszystkie prostokąty poszczególnych elementów w podmenu i wywołuje dla nich rekurencyjnie funkcję Fix(), co powoduje ustawienie rozmiarów całej gałęzi menu. Refresh() - rysuje element na powierzchni graficznej Unsel() - zamyka wszystkie podmenu otwarte w bieżącym elemencie. Kasuje wybór elementu.
gfxMenu
Klasa obsługuje pasek menu. Dziedziczy wszystkie pola i funkcje z klasy gfxGUIObject.
item - wskaźnik głowy listy elementów menu znajdujących się w pasku menu gfxMenu() - konstruktor
gfxMenu(s,f,mi)
s - wskaźnik struktury SDL_Surface
f - wskaźnik struktury gfxFont
mi - wskaźnik głowy listy elementów menu~gfxMenu() - destruktor DoEvents() - obsługa zdarzeń dla menu.
DoEvents(e)
e - wskaźnik struktury SDL_EventFix() - wylicza prostokąty dla wszystkich elementów menu. Refresh() - rysuje pasek menu u góry ekranu Unsel() - zamyka całe menu
gfxEdit
Klasa prostego edytora jednowierszowego. Dziedziczy wszystkie pola i funkcje z klasy gfxGUIObject.
cstart - jeśli tekst jest dłuższy niż rozmiar okienka, to wyświetlany jest tylko fragment począwszy od pozycji cstart. maxlen - maksymalna liczba znaków tekstu w tablicy text[] ctextlen - aktualna liczba znaków przechowywanych w tablicy text[] cpos - pozycja wstawiania i usuwania znaków - ogólnie pozycja kursora cxpos - współrzędna x kursora na ekranie graficznym gfxEdit() - konstruktor klasy
gfxEdit(tg,en,s,f,r,t,len,fn)
tg - identyfikator kontrolki edytora
en - określa, czy kontrolka ma być aktywna - true, czy zablokowana - false
s - wskaźnik struktury SDL_Surface, na której będzie rysowana kontrolka edytora
f - wskaźnik struktury gfxFont określającej czcionkę dla tekstu kontrolki
r - prostokąt definiujący obszar kontrolki - wymiary są korygowane do wysokości tekstu z marginesem 4 pikseli.
t - wskaźnik tekstu początkowego, który pojawi się w oknie edytora
fn - wskaźnik funkcji wywoływanej przy naciśnięciu klawisza Enter.~gfxEdit() - destruktor DoEvents() - obsługa zdarzeń dla edytora
DoEvents(e)
e - wskaźnik struktury SDL_Event.KeyboardHandler() - zwraca kod naciśniętego klawisza uwzględniający CapsLock, Shift i Alt.
KeyboardHandler(e)
e - wskaźnik struktury SDL_Event.Refresh() - wyświetla okno edytora
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe