another ugly cast removal

This commit is contained in:
Andrzej Rybczak
2009-02-17 07:41:09 +01:00
parent 2c66178663
commit 7c936d8eaf
2 changed files with 16 additions and 6 deletions

View File

@@ -186,9 +186,6 @@ int main(int argc, char *argv[])
gettimeofday(&now, 0);
// this type of casting is absolutely hillarious lol
Screen<Window> *&myWindow = *(Screen<Window> **)(void *)&myScreen;
while (!main_exit)
{
if (!Mpd->Connected())
@@ -246,10 +243,9 @@ int main(int argc, char *argv[])
// header stuff end
myScreen->Update();
myScreen->RefreshWindow();
myScreen->ReadKey(input);
myWindow->Main()->Display();
myWindow->Main()->ReadKey(input);
if (input == ERR)
continue;

View File

@@ -43,6 +43,8 @@ class BasicScreen
virtual void Update() { }
virtual void Refresh() = 0;
virtual void RefreshWindow() = 0;
virtual void ReadKey(int &) = 0;
virtual void Scroll(Where, const int * = 0) = 0;
virtual void EnterPressed() { }
@@ -70,6 +72,8 @@ template <class WindowType> class Screen : public BasicScreen
WindowType *&Main();
virtual void Refresh();
virtual void RefreshWindow();
virtual void ReadKey(int &input);
virtual void Scroll(Where where, const int *);
protected:
@@ -91,6 +95,16 @@ template <class WindowType> void Screen<WindowType>::Refresh()
w->Display();
}
template <class WindowType> void Screen<WindowType>::RefreshWindow()
{
w->Display();
}
template <class WindowType> void Screen<WindowType>::ReadKey(int &input)
{
w->ReadKey(input);
}
template <class WindowType> void Screen<WindowType>::Scroll(Where where, const int *key)
{
if (!Config.fancy_scrolling && key)