2018-01-07 19:43:17 +00:00
|
|
|
#ifndef __VMUI_H
|
|
|
|
#define __VMUI_H
|
|
|
|
|
|
|
|
//#ifndef TEENSYDUINO
|
|
|
|
#include <stdint.h>
|
|
|
|
//#endif
|
|
|
|
|
|
|
|
/* Abstraction of VM-specific UI element drawing.
|
|
|
|
*
|
|
|
|
* UI elements are things like
|
|
|
|
* - disk drive 1/inserted, disk drive 1/ejected;
|
|
|
|
* - power icon percentage;
|
|
|
|
* - disk drive 1/activity indicator, on/off;
|
|
|
|
* - parallel port activity;
|
|
|
|
* - network activity;
|
|
|
|
* etc. (No, not all of those things exist yet.)
|
|
|
|
*
|
|
|
|
* This encapsulates the VM positioning and icon data. The actual
|
|
|
|
* drawing routines are in the physical implementation (TeensyDisplay
|
|
|
|
* or SDLDisplay).
|
|
|
|
*
|
|
|
|
* Most of those are on/off indicators. Some are percentage indicators.
|
|
|
|
* The element IDs are in the VM's UI class (cf. AppleUI).
|
|
|
|
*/
|
|
|
|
|
|
|
|
class VMui
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
VMui() {};
|
|
|
|
~VMui() {};
|
|
|
|
|
|
|
|
virtual void drawStaticUIElement(uint8_t element) = 0;
|
|
|
|
virtual void drawOnOffUIElement(uint8_t element, bool state) = 0; // on or off
|
|
|
|
virtual void drawPercentageUIElement(uint8_t element, uint8_t percent) = 0; // 0-100
|
2018-02-18 01:44:04 +00:00
|
|
|
|
|
|
|
virtual void blit() = 0; // perform any drawing
|
2018-01-07 19:43:17 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|