Files
Aerofoil/PortabilityLayer/MenuManager.h

39 lines
1.1 KiB
C
Raw Normal View History

2019-12-21 18:40:17 -05:00
#pragma once
#include <stdint.h>
struct IGpDisplayDriver;
2019-12-24 02:35:24 -05:00
struct Menu;
2019-12-21 18:40:17 -05:00
namespace PortabilityLayer
{
struct Vec2i;
2019-12-21 18:40:17 -05:00
class MenuManager
{
public:
2019-12-24 02:35:24 -05:00
virtual void Init() = 0;
virtual void Shutdown() = 0;
2019-12-21 18:40:17 -05:00
virtual Menu **DeserializeMenu(const void *resData) const = 0;
virtual Menu **GetMenuByID(int id) const = 0;
virtual void InsertMenuBefore(Menu **insertingMenu, Menu **existingMenu) = 0;
virtual void InsertMenuAfter(Menu **insertingMenu, Menu **existingMenu) = 0;
virtual void InsertMenuAtEnd(Menu **insertingMenu) = 0;
virtual void InsertMenuAtBeginning(Menu **insertingMenu) = 0;
virtual void SetMenuEnabled(Menu **menuHandle, bool enabled) = 0;
virtual void SetItemEnabled(Menu **menu, unsigned int index, bool enabled) = 0;
virtual void SetItemChecked(Menu **menu, unsigned int index, bool checked) = 0;
2019-12-21 18:40:17 -05:00
virtual bool IsPointInMenuBar(const Vec2i &point) const = 0;
virtual void MenuSelect(const Vec2i &initialPoint, int16_t *outMenu, uint16_t *outItem) = 0;
2019-12-24 02:35:24 -05:00
virtual void DrawMenuBar() = 0;
virtual void RenderFrame(IGpDisplayDriver *displayDriver) = 0;
2019-12-21 18:40:17 -05:00
static MenuManager *GetInstance();
};
}