Forgot these

This commit is contained in:
simon.kagstrom 2010-01-02 16:04:50 +00:00
parent 292d107d72
commit 5f11ca70fa
2 changed files with 60 additions and 0 deletions

22
gui_view.hh Normal file
View File

@ -0,0 +1,22 @@
#ifndef __GUI_VIEW_HH__
#define __GUI_VIEW_HH__
#include <SDL.h>
#include "widget.hh"
class GuiView : public Widget
{
public:
GuiView();
virtual void updateTheme();
virtual void viewPushCallback();
virtual void viewPopCallback();
virtual void draw(SDL_Surface *where) = 0;
};
#endif /* __GUI_VIEW_HH__ */

38
listener.cpp Normal file
View File

@ -0,0 +1,38 @@
#include "listener.hh"
#include "utils.hh"
ListenerManager::ListenerManager()
{
printf("Flushing listeners\n");
this->flushListeners();
}
void ListenerManager::registerListener(Listener *kl)
{
int n_listeners = sizeof(this->listeners) / sizeof(*this->listeners);
int i;
/* Don't register already registered listeners */
for (i = 0; i < n_listeners; i++)
if (this->listeners[i] == kl)
return;
/* Find a free spot */
for (i = 0; i < n_listeners; i++)
if (!this->listeners[i])
break;
panic_if(i == n_listeners,
"No free listeners!\n");
this->listeners[i] = kl;
}
void ListenerManager::unregisterListener(Listener *kl)
{
int n_listeners = sizeof(this->listeners) / sizeof(*this->listeners);
for (int i = 0; i < n_listeners; i++)
{
if (this->listeners[i] == kl)
this->listeners[i] = NULL;
}
}