64 lines
1.5 KiB
Text
64 lines
1.5 KiB
Text
// Classes for menu tabs
|
|
|
|
Class DemolitionistMenuTab ui abstract
|
|
{
|
|
DemolitionistMenu master;
|
|
String title;
|
|
bool bHidden; // tab does not display and can't be selected
|
|
bool bDirectInput; // inputs are directly passed to this tab
|
|
|
|
// tab initialization
|
|
virtual DemolitionistMenuTab Init( DemolitionistMenu master )
|
|
{
|
|
self.master = master;
|
|
return self;
|
|
}
|
|
|
|
// called for menu input (direction keys, enter, back)
|
|
virtual void MenuInput( int key )
|
|
{
|
|
}
|
|
|
|
// called for mouse input (left/right click, mouse wheel up/down, mouse drag/release)
|
|
virtual void MouseInput( Vector2 pos, int btn )
|
|
{
|
|
}
|
|
|
|
// called for "direct input" from ui events
|
|
virtual bool DirectInput( UIEvent ev )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
// called after this tab is selected
|
|
virtual void OnSelect()
|
|
{
|
|
}
|
|
|
|
// called before another tab is selected
|
|
virtual void OnDeselect()
|
|
{
|
|
}
|
|
|
|
// called every tic while selected
|
|
virtual void Ticker()
|
|
{
|
|
}
|
|
|
|
// called every frame while selected
|
|
virtual void Drawer( double fractic )
|
|
{
|
|
// placeholder (so don't call super)
|
|
String str = StringTable.Localize("$SWWM_COMINGSOON");
|
|
double xx = int(master.ws.x-master.mSmallFont.StringWidth(str))/2;
|
|
double yy = int(master.ws.y-master.mSmallFont.GetHeight())/2;
|
|
Screen.DrawText(master.mSmallFont,Font.CR_FIRE,master.origin.x+xx,master.origin.y+yy,str,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true);
|
|
}
|
|
}
|
|
|
|
// for add-ons
|
|
Class DemolitionistMenuTabCustom : DemolitionistMenuTab abstract
|
|
{
|
|
// wow it's literally nothing
|
|
// just subclass from this in your add-ons
|
|
}
|