//
// Window.cpp
// Framework
//
// Created by John Ryland on 5/10/17.
// Copyright © 2017 John Ryland. All rights reserved.
//
#include "Window.h"
#include "../Platform/Platform.h"
Window::Window()
{
m_platformHandle = CreateWindow();
}
Window::~Window()
{
DestroyWindow(m_platformHandle);
}
void Window::setWindowStyle(int a_styleFlags)
{
SetWindowStyle(m_platformHandle, a_styleFlags);
}
void Window::setGeometry(int a_x, int a_y, int a_width, int a_height)
{
SetWindowGeometry(m_platformHandle, a_x, a_y, a_width, a_height);
}
void Window::setTitle(const char* a_title)
{
SetWindowTitle(m_platformHandle, a_title);
}
void Window::show()
{
ShowWindow(m_platformHandle);
}
View::View(const Window& a_parent)
{
m_platformHandle = CreateView(a_parent.m_platformHandle);
}
View::~View()
{
DestroyView(m_platformHandle);
}
void View::setGeometry(int a_x, int a_y, int a_width, int a_height)
{
SetViewGeometry(m_platformHandle, a_x, a_y, a_width, a_height);
}
void View::setColor(float a_red, float a_green, float a_blue, float a_alpha)
{
SetViewColor(m_platformHandle, a_red, a_green, a_blue, a_alpha);
}
void View::onMouseEvent(std::function<void(const MouseEvent&)> a_callback)
{
SetViewOnMouseEvent(m_platformHandle, a_callback);
}
GLView::GLView(const Window& a_parent)
{
m_platformHandle = CreateGLView(a_parent.m_platformHandle);
}
GLView::~GLView()
{
DestroyGLView(m_platformHandle);
}
void GLView::setGeometry(int a_x, int a_y, int a_width, int a_height)
{
SetGLViewGeometry(m_platformHandle, a_x, a_y, a_width, a_height);
}
void GLView::onPrepare(std::function<void()> a_callback)
{
SetGLViewOnPrepare(m_platformHandle, a_callback);
}
void GLView::onUpdate(std::function<void()> a_callback)
{
SetGLViewOnUpdate(m_platformHandle, a_callback);
}
void GLView::onDraw(std::function<void()> a_callback)
{
SetGLViewOnDraw(m_platformHandle, a_callback);
}
void GLView::onClose(std::function<void()> a_callback)
{
SetGLViewOnClose(m_platformHandle, a_callback);
}
void GLView::onResize(std::function<void(float a_width, float a_height)> a_callback)
{
SetGLViewOnResize(m_platformHandle, a_callback);
}
void GLView::onMouseEvent(std::function<void(const MouseEvent&)> a_callback)
{
SetGLViewOnMouseEvent(m_platformHandle, a_callback);
}
Label::Label(const Window& a_parent)
{
m_platformHandle = CreateWindowLabel(a_parent.m_platformHandle);
}
Label::Label(const View& a_parent)
{
m_platformHandle = CreateViewLabel(a_parent.m_platformHandle);
}
Label::~Label()
{
DestroyLabel(m_platformHandle);
}
void Label::setGeometry(int a_x, int a_y, int a_width, int a_height)
{
SetLabelGeometry(m_platformHandle, a_x, a_y, a_width, a_height);
}
void Label::setColor(float a_red, float a_green, float a_blue, float a_alpha)
{
SetLabelColor(m_platformHandle, a_red, a_green, a_blue, a_alpha);
}
void Label::setText(const char* a_text)
{
SetLabelText(m_platformHandle, a_text);
}
void Label::setFontSize(int a_size)
{
SetLabelFontSize(m_platformHandle, a_size);
}
void Label::onMouseEvent(std::function<void(const MouseEvent&)> a_callback)
{
SetLabelOnMouseEvent(m_platformHandle, a_callback);
}