class NGUIContainer : public NGUIBox
{
NGUIBox **components;
unsigned int ComponentsNum;
NGUIBox * focused;
public:
NGUIContainer();
~NGUIContainer();
virtual void Draw();
virtual void DoLogic();
virtual void OnMouseDown(int x, int y, int button = SDL_BUTTON_LEFT);
virtual void OnMouseUp(int x, int y, int button = SDL_BUTTON_LEFT);
virtual void OnMouseMotion(int x, int y);
virtual void OnKeyDown(SDLKey sym, SDLMod mod);
virtual void OnKeyUp(SDLKey sym, SDLMod mod);
void RegisterComponent(NGUIBox * comp);
void DeregisterComponent(NGUIBox * comp);
void DeregisterLastComponent();
};
Jedziemy od góry.
Konstruktor zeruje zmienne, destruktor nie robi nic.
Funkcja Draw wypełnia kolorem warstwę Containera, następnie wywołuje funkcję draw wszystkich dzieci Containera i Blituje ich warstwy na swoją.
Funkcja DoLogic nie robi nic.
Kolejne 5 funkcji przekazuje eventy do dzieci Containera, nie chce mi się tego tłumaczyć dogłębnie, bo jest proste.
Funkcja RegisterComponent dodaje dany GUIBox jako dziecko Containera.
Funkcja DeregisterComponent robi dokładnie odwrotnie.
Funkcja DeregisterLastComponent robi to co ta wyżej, tylko że usuwa z listy ostatni komponent, a nie konkretny.
Można powoli obmyślać wygląd interfejsu...
Brak komentarzy:
Prześlij komentarz