CSE2-archive/src/Backends/Misc.h

107 lines
2.8 KiB
C++

// Released under the MIT licence.
// See LICENCE.txt for details.
#pragma once
#include <stddef.h>
#include <string>
#include "../Attributes.h"
enum
{
// Based on US QWERTY
BACKEND_KEYBOARD_A,
BACKEND_KEYBOARD_B,
BACKEND_KEYBOARD_C,
BACKEND_KEYBOARD_D,
BACKEND_KEYBOARD_E,
BACKEND_KEYBOARD_F,
BACKEND_KEYBOARD_G,
BACKEND_KEYBOARD_H,
BACKEND_KEYBOARD_I,
BACKEND_KEYBOARD_J,
BACKEND_KEYBOARD_K,
BACKEND_KEYBOARD_L,
BACKEND_KEYBOARD_M,
BACKEND_KEYBOARD_N,
BACKEND_KEYBOARD_O,
BACKEND_KEYBOARD_P,
BACKEND_KEYBOARD_Q,
BACKEND_KEYBOARD_R,
BACKEND_KEYBOARD_S,
BACKEND_KEYBOARD_T,
BACKEND_KEYBOARD_U,
BACKEND_KEYBOARD_V,
BACKEND_KEYBOARD_W,
BACKEND_KEYBOARD_X,
BACKEND_KEYBOARD_Y,
BACKEND_KEYBOARD_Z,
BACKEND_KEYBOARD_0,
BACKEND_KEYBOARD_1,
BACKEND_KEYBOARD_2,
BACKEND_KEYBOARD_3,
BACKEND_KEYBOARD_4,
BACKEND_KEYBOARD_5,
BACKEND_KEYBOARD_6,
BACKEND_KEYBOARD_7,
BACKEND_KEYBOARD_8,
BACKEND_KEYBOARD_9,
BACKEND_KEYBOARD_F1,
BACKEND_KEYBOARD_F2,
BACKEND_KEYBOARD_F3,
BACKEND_KEYBOARD_F4,
BACKEND_KEYBOARD_F5,
BACKEND_KEYBOARD_F6,
BACKEND_KEYBOARD_F7,
BACKEND_KEYBOARD_F8,
BACKEND_KEYBOARD_F9,
BACKEND_KEYBOARD_F10,
BACKEND_KEYBOARD_F11,
BACKEND_KEYBOARD_F12,
BACKEND_KEYBOARD_UP,
BACKEND_KEYBOARD_DOWN,
BACKEND_KEYBOARD_LEFT,
BACKEND_KEYBOARD_RIGHT,
BACKEND_KEYBOARD_ESCAPE,
BACKEND_KEYBOARD_BACK_QUOTE,
BACKEND_KEYBOARD_TAB,
BACKEND_KEYBOARD_CAPS_LOCK,
BACKEND_KEYBOARD_LEFT_SHIFT,
BACKEND_KEYBOARD_LEFT_CTRL,
BACKEND_KEYBOARD_LEFT_ALT,
BACKEND_KEYBOARD_SPACE,
BACKEND_KEYBOARD_RIGHT_ALT,
BACKEND_KEYBOARD_RIGHT_CTRL,
BACKEND_KEYBOARD_RIGHT_SHIFT,
BACKEND_KEYBOARD_ENTER,
BACKEND_KEYBOARD_BACKSPACE,
BACKEND_KEYBOARD_MINUS,
BACKEND_KEYBOARD_EQUALS,
BACKEND_KEYBOARD_LEFT_BRACKET,
BACKEND_KEYBOARD_RIGHT_BRACKET,
BACKEND_KEYBOARD_BACK_SLASH,
BACKEND_KEYBOARD_SEMICOLON,
BACKEND_KEYBOARD_APOSTROPHE,
BACKEND_KEYBOARD_COMMA,
BACKEND_KEYBOARD_PERIOD,
BACKEND_KEYBOARD_FORWARD_SLASH,
BACKEND_KEYBOARD_TOTAL
};
bool Backend_Init(void (*drag_and_drop_callback)(const char *path), void (*window_focus_callback)(bool focus));
void Backend_Deinit(void);
void Backend_PostWindowCreation(void);
bool Backend_GetPaths(std::string *module_path, std::string *data_path);
void Backend_HideMouse(void);
void Backend_SetWindowIcon(const unsigned char *rgb_pixels, size_t width, size_t height);
void Backend_SetCursor(const unsigned char *rgba_pixels, size_t width, size_t height);
void Backend_EnableDragAndDrop(void);
bool Backend_SystemTask(bool active);
void Backend_GetKeyboardState(bool *keyboard_state);
void Backend_ShowMessageBox(const char *title, const char *message);
ATTRIBUTE_FORMAT_PRINTF(1, 2) void Backend_PrintError(const char *format, ...);
ATTRIBUTE_FORMAT_PRINTF(1, 2) void Backend_PrintInfo(const char *format, ...);
unsigned long Backend_GetTicks(void);
void Backend_Delay(unsigned int ticks);