50 lines
1.5 KiB
C++
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;
|
|
};
|
|
|