Starting resize support.

This commit is contained in:
James Grogan 2022-11-14 14:57:50 +00:00
parent cea3d2c39f
commit 9ade0e2d4b
26 changed files with 197 additions and 44 deletions

View file

@ -12,6 +12,8 @@ list(APPEND ui_elements_LIB_INCLUDES
ui_events/MouseEvent.h
ui_events/UiEvent.h
ui_events/PaintEvent.h
ui_events/ResizeEvent.h
ui_events/ResizeEvent.cpp
widgets/Widget.cpp
widgets/Button.cpp
widgets/Label.cpp

View file

@ -37,6 +37,12 @@ std::unique_ptr<Window> Window::Create()
return std::make_unique<Window>();
}
void Window::setSize(unsigned width, unsigned height)
{
DrawingSurface::setSize(width, height);
mWidget->setBounds(width, height);
}
void Window::clearPlatformWindow()
{
mPlatformWindow.reset();

View file

@ -55,6 +55,8 @@ public:
void clearPlatformWindow();
void setSize(unsigned width, unsigned height) override;
private:
WidgetPtr mWidget {nullptr};
IPlatformWindowPtr mPlatformWindow {nullptr};

View file

@ -7,7 +7,6 @@
class PaintEvent : public UiEvent
{
public:
PaintEvent();
~PaintEvent();

View file

@ -0,0 +1,20 @@
#include "ResizeEvent.h"
ResizeEvent::ResizeEvent(unsigned width, unsigned height)
: UiEvent(),
mWidth(),
mHeight()
{
mType = UiEvent::Type::Resize;
}
ResizeEvent::~ResizeEvent()
{
}
std::unique_ptr<ResizeEvent> ResizeEvent::Create(unsigned width, unsigned height)
{
return std::make_unique<ResizeEvent>(width, height);
}

View file

@ -0,0 +1,30 @@
#pragma once
#include <memory>
#include "UiEvent.h"
class ResizeEvent : public UiEvent
{
public:
ResizeEvent(unsigned width, unsigned height);
~ResizeEvent();
static std::unique_ptr<ResizeEvent> Create(unsigned width, unsigned height);
unsigned getWidth() const
{
return mWidth;
}
unsigned getHeight() const
{
return mHeight;
}
private:
unsigned mWidth{0};
unsigned mHeight{0};
};
using ResizeEventPtr = std::unique_ptr<ResizeEvent>;

View file

@ -10,7 +10,8 @@ public:
Unknown,
Paint,
Mouse,
Keyboard
Keyboard,
Resize
};
protected: