diff options
Diffstat (limited to 'src/menu')
-rw-r--r-- | src/menu/application.cpp | 22 | ||||
-rw-r--r-- | src/menu/application.hpp | 6 | ||||
-rw-r--r-- | src/menu/container.cpp | 16 | ||||
-rw-r--r-- | src/menu/container.hpp | 6 |
4 files changed, 23 insertions, 27 deletions
diff --git a/src/menu/application.cpp b/src/menu/application.cpp index 28862a8c..7e6c9216 100644 --- a/src/menu/application.cpp +++ b/src/menu/application.cpp @@ -70,25 +70,6 @@ namespace usdx return instance; } - void Application::draw(void) - { - if (frame) { - frame->repaint(); - } - - Container::draw(); - } - - const Frame *Application::get_current_frame(void) const - { - return frame; - } - - void Application::set_current_frame(Frame* new_frame) - { - frame = new_frame; - } - void Application::main_loop(SDL_Surface* display) { SDL_Event event; @@ -97,8 +78,7 @@ namespace usdx DrawableControl *p = new SoftwareMousePointer(this, &event_manager); p->repaint(); - LoadingFrame frame; - set_current_frame(&frame); + LoadingFrame frame(this); running = true; while (running) { diff --git a/src/menu/application.hpp b/src/menu/application.hpp index 72e5f3a3..de23cf6d 100644 --- a/src/menu/application.hpp +++ b/src/menu/application.hpp @@ -44,7 +44,6 @@ namespace usdx static Application* instance; SDL_Surface* display; - Frame* frame; FPSmanager* fps_manager; bool running; @@ -61,8 +60,6 @@ namespace usdx protected: Application(Container* parent); - void draw(void); - public: virtual ~Application(); @@ -70,9 +67,6 @@ namespace usdx void run(void); - const Frame* get_current_frame(void) const; - void set_current_frame(Frame* new_frame); - const int get_frames_per_second(void) const; void set_frames_per_second(int fps); }; diff --git a/src/menu/container.cpp b/src/menu/container.cpp index a5519f0d..379dd7c1 100644 --- a/src/menu/container.cpp +++ b/src/menu/container.cpp @@ -25,6 +25,7 @@ */ #include "container.hpp" +#include "frame.hpp" namespace usdx { @@ -43,6 +44,10 @@ namespace usdx void Container::draw(void) { + if (frame) { + frame->repaint(); + } + for (std::list<DrawableControl*>::iterator it = controls.begin(); it != controls.end(); it++) { (*it)->repaint(); @@ -58,4 +63,15 @@ namespace usdx { controls.remove(child); } + + void Container::setFrame(Frame *f) + { + f->set_size(get_size()); + frame = f; + } + + void Container::removeFrame(void) + { + frame = NULL; + } }; diff --git a/src/menu/container.hpp b/src/menu/container.hpp index ce12ce39..dd5a8a32 100644 --- a/src/menu/container.hpp +++ b/src/menu/container.hpp @@ -34,11 +34,14 @@ namespace usdx { + class Frame; + class Container : public DrawableControl { private: static log4cpp::Category& log; + Frame* frame; std::list<DrawableControl*> controls; protected: @@ -50,6 +53,9 @@ namespace usdx virtual void add(DrawableControl*); virtual void remove(DrawableControl*); + + virtual void setFrame(Frame*); + virtual void removeFrame(void); }; }; |