// // Window.h // Platform // // Created by John Ryland on 5/10/17. // Copyright © 2017 John Ryland. All rights reserved. // #pragma once #include <functional> #include "../Framework/Window.h" // FIXME: seems to break the layering - needed for MouseEvent struct void* CreateWindow(); void DestroyWindow(void* a_platformHandle); void SetWindowStyle(void* a_platformHandle, int a_styleFlags); void SetWindowGeometry(void* a_platformHandle, int a_x, int a_y, int a_width, int a_height); void SetWindowTitle(void* a_platformHandle, const char* a_title); void ShowWindow(void* a_platformHandle); void* CreateView(void* a_platformHandle); void DestroyView(void* a_platformHandle); void SetViewGeometry(void* a_platformHandle, int a_x, int a_y, int a_width, int a_height); void SetViewColor(void* a_platformHandle, float a_red, float a_green, float a_blue, float a_alpha); void SetViewOnMouseEvent(void* a_platformHandle, std::function<void(const MouseEvent&)> a_callback); void* CreateGLView(void* a_platformHandle); void DestroyGLView(void* a_platformHandle); void SetGLViewGeometry(void* a_platformHandle, int a_x, int a_y, int a_width, int a_height); void SetGLViewOnPrepare(void* a_platformHandle, std::function<void()> a_callback); void SetGLViewOnUpdate(void* a_platformHandle, std::function<void()> a_callback); void SetGLViewOnDraw(void* a_platformHandle, std::function<void()> a_callback); void SetGLViewOnClose(void* a_platformHandle, std::function<void()> a_callback); void SetGLViewOnResize(void* a_platformHandle, std::function<void(float a_width, float a_height)> a_callback); void SetGLViewOnMouseEvent(void* a_platformHandle, std::function<void(const MouseEvent&)> a_callback); void* CreateWindowLabel(void* a_platformHandle); void* CreateViewLabel(void* a_platformHandle); void DestroyLabel(void* a_platformHandle); void SetLabelGeometry(void* a_platformHandle, int a_x, int a_y, int a_width, int a_height); void SetLabelColor(void* a_platformHandle, float a_red, float a_green, float a_blue, float a_alpha); void SetLabelText(void* a_platformHandle, const char* a_text); void SetLabelFontSize(void* a_platformHandle, int a_size); void SetLabelOnMouseEvent(void* a_platformHandle, std::function<void(const MouseEvent&)> a_callback);