mgba/src/util/gui.h

56 lines
1.1 KiB
C

/* Copyright (c) 2013-2015 Jeffrey Pfau
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef GUI_H
#define GUI_H
#include "util/common.h"
#include "util/vector.h"
struct GUIFont;
enum GUIInput {
GUI_INPUT_NONE = -1,
GUI_INPUT_SELECT = 0,
GUI_INPUT_BACK,
GUI_INPUT_CANCEL,
GUI_INPUT_UP,
GUI_INPUT_DOWN,
GUI_INPUT_LEFT,
GUI_INPUT_RIGHT,
GUI_INPUT_MAX
};
struct GUIParams {
unsigned width;
unsigned height;
const struct GUIFont* font;
const char* basePath;
void (*drawStart)(void);
void (*drawEnd)(void);
int (*pollInput)(void);
void (*guiPrepare)(void);
void (*guiFinish)(void);
// State
int inputHistory[GUI_INPUT_MAX];
// Directories
char currentPath[PATH_MAX];
size_t fileIndex;
};
#define GUI_PARAMS_TRAIL {}, "", 0
void GUIInit(struct GUIParams* params);
void GUIPollInput(struct GUIParams* params, int* newInput, int* heldInput);
void GUIInvalidateKeys(struct GUIParams* params);
#endif