Chodzi o to, że tworzę sobie okno (a właściwie pasek), na którym będą przyciski różnych stanów (hovered, pushed, normal) zawierające ikonę i opcjonalnie tekst. No i jak zrobić zarządzanie tymi przyciskami tworzenie, usuwanie, zmiana stanu i rysowanie? Zastanawiam się jak utworzyć dobrze obiekty oraz relacje pomiędzy nimi.
Na razie moja koncepcja jest taka:
1.) Mam okno (opakowane w całości w klasę), które jest tymże paskiem.
2.) Obiekt nazwijmy go np. BtnInfo zawiera informacje o przycisku.
3.) Obiekt nazwijmy go np. BtnPainter rysujący przycisk - podaję mu wskaźnik do BtnInfo, i na tej podstawie wie już, gdzie narysować przycisk.
4.) Okno wykonuje główne operacje: tworzy obiekty BtnInfo i dodaje do listy przycisków (listy tych obiektów), obsługuje komunikaty (m.in kliknięcia) oraz "prosi" BtnPainter o narysowanie poszczególnych przycisków, gdy zachodzi taka potrzeba.
Co o tym myślicie? A może lepiej zrobić tak, by każdy button był oknem, które samo się rysuje, a główne okno jedynie zmienia pozycje i stany tych buttonów? Tylko czy to nie będzie przerost formy nad treścią, tzn. niepotrzebnie zwiększone zużycie zasobów?
I jeszcze jedno - to nie jest zwykła aplikacja okienkowa, a przyciski są tworzone m.in po otrzymaniu komunikatu od innych aplikacji. Nie chcę mówić co tworzę bo dałbym sobie rękę uciąć, że wtedy zrobi się offtop, wiem z doświadczenia.