aiie/vmui.h

40 lines
1.0 KiB
C++

#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
virtual void blit() = 0; // perform any drawing
};
#endif