// Classes for menu tabs Class DemolitionistMenuTab ui abstract { DemolitionistMenu master; String title; bool bHidden; // tab does not display and can't be selected // 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 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() { // 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 }