#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; };