Lephisto/src/view.h
2018-04-16 22:47:37 +01:00

50 lines
1.5 KiB
C++

#pragma once
#include "libs.h"
#include "gui.h"
/*
* For whatever draws into the main area of the screen.
* Eg:
* Game 3D view.
* System map.
* Sector map.
*/
class View : public Gui::Fixed {
public:
View(void) : Gui::Fixed(Gui::Screen::GetWidth(), Gui::Screen::GetHeight()-64) {
Gui::Screen::AddBaseWidget(this, 0, 0);
m_rightButtonBar = new Gui::Fixed(128, 26);
m_rightButtonBar->SetBgColor(.65, .65, .65);
Gui::Screen::AddBaseWidget(m_rightButtonBar, Gui::Screen::GetWidth()-128, Gui::Screen::GetHeight()-26);
m_rightRegion2 = new Gui::Fixed(122, 17);
m_rightRegion2->SetTransparency(true);
Gui::Screen::AddBaseWidget(m_rightRegion2, Gui::Screen::GetWidth()-123, Gui::Screen::GetHeight()-44);
}
virtual ~View(void) { delete m_rightButtonBar; delete m_rightRegion2; }
virtual void ShowAll(void) {
m_rightButtonBar->ShowAll();
m_rightRegion2->ShowAll();
Gui::Fixed::ShowAll();
}
virtual void HideAll(void) {
m_rightButtonBar->HideAll();
m_rightRegion2->HideAll();
Gui::Fixed::HideAll();
}
/* Called before Gui::Draw will call widget ::Draw methods. */
virtual void Draw3D(void) = 0;
/* For checking key states, mouse stuff. */
virtual void Update(void) = 0;
virtual void Save(void) { }
virtual void Load(void) { }
virtual void OnSwitchTo() = 0;
protected:
/* Each view can put some buttons in the bottom right of the cpanel. */
Gui::Fixed* m_rightButtonBar;
//Gui::Fixed* m_rightRegion1;
Gui::Fixed* m_rightRegion2;
};