mirror of
https://github.com/robmcmullen/apple2.git
synced 2024-09-27 12:54:40 +00:00
c970c23a2e
The settings code now actually saves updated settings to the config file. Also wrote the beginnings of a proper Config window, and a few of the options actually work (which ones work is left as an exercise for the reader).
59 lines
1.8 KiB
C++
59 lines
1.8 KiB
C++
//
|
|
// GUI.H
|
|
//
|
|
// Graphical User Interface support
|
|
//
|
|
|
|
#ifndef __GUI_H__
|
|
#define __GUI_H__
|
|
|
|
#include <SDL2/SDL.h>
|
|
|
|
enum { SBS_SHOWING, SBS_HIDING, SBS_SHOWN, SBS_HIDDEN };
|
|
|
|
class GUI
|
|
{
|
|
public:
|
|
GUI();
|
|
~GUI();
|
|
|
|
// Everything else is a class method...
|
|
static void Init(SDL_Renderer *);
|
|
static SDL_Texture * CreateTexture(SDL_Renderer *, const void *);
|
|
static void MouseDown(int32_t, int32_t, uint32_t);
|
|
static void MouseUp(int32_t, int32_t, uint32_t);
|
|
static void MouseMove(int32_t, int32_t, uint32_t);
|
|
static bool KeyDown(uint32_t);
|
|
static void HandleIconSelection(SDL_Renderer *);
|
|
static void AssembleDriveIcon(SDL_Renderer *, int);
|
|
static void DrawEjectButton(SDL_Renderer *, int);
|
|
static void DrawNewDiskButton(SDL_Renderer *, int);
|
|
static void DrawDriveLight(SDL_Renderer *, int);
|
|
static void DrawCharArray(SDL_Renderer *, const char *, int x,
|
|
int y, int w, int h, int r, int g, int b);
|
|
static void DrawCharacter(SDL_Renderer *, int, int, uint8_t, bool inv = false);
|
|
static void DrawCharacterVert(SDL_Renderer *, int, int, uint8_t, bool inv = false);
|
|
static void DrawString(SDL_Renderer *, int, int, const char *, bool inv = false);
|
|
static void DrawStringVert(SDL_Renderer *, int, int, const char *, bool inv = false);
|
|
static void DrawBox(SDL_Renderer *, int, int, int, int, int r = 0x00, int g = 0xAA, int b = 0x00);
|
|
static void HandleGUIState(void);
|
|
static void DrawSidebarIcons(SDL_Renderer *);
|
|
static void Render(SDL_Renderer *);
|
|
|
|
// Class variables...
|
|
static SDL_Texture * overlay;
|
|
static SDL_Rect olDst;
|
|
static int sidebarState;
|
|
static int32_t dx;
|
|
static int32_t iconSelected;
|
|
static bool hasKeyboardFocus;
|
|
static bool powerOnState;
|
|
|
|
private:
|
|
static SDL_Texture * charStamp;
|
|
static uint32_t stamp[];
|
|
};
|
|
|
|
#endif // __GUI_H__
|
|
|