add resizable window flag and resize window events

This commit is contained in:
2019-10-22 02:19:43 +07:00
parent 0ac38ec3e5
commit 536bdd7a9c
6 changed files with 56 additions and 11 deletions

View File

@@ -83,16 +83,19 @@ namespace e2d
window_parameters& caption(str_view value);
window_parameters& size(const v2u& value) noexcept;
window_parameters& vsync(bool value) noexcept;
window_parameters& resizable(bool value) noexcept;
window_parameters& fullscreen(bool value) noexcept;
const str& caption() const noexcept;
const v2u& size() const noexcept;
bool vsync() const noexcept;
bool resizable() const noexcept;
bool fullscreen() const noexcept;
private:
str caption_{"Enduro2D"};
v2u size_{640, 480};
bool vsync_{false};
bool resizable_{false};
bool fullscreen_{false};
};

View File

@@ -27,13 +27,15 @@ namespace e2d
virtual void on_mouse_scroll(const v2f& delta) noexcept;
virtual void on_mouse_button(mouse_button btn, mouse_button_action act) noexcept;
virtual void on_keyboard_key(keyboard_key key, u32 scancode, keyboard_key_action act) noexcept;
virtual void on_window_size(const v2u& size) noexcept;
virtual void on_framebuffer_size(const v2u& size) noexcept;
virtual void on_window_close() noexcept;
virtual void on_window_focus(bool focused) noexcept;
virtual void on_window_minimize(bool minimized) noexcept;
};
using event_listener_uptr = std::unique_ptr<event_listener>;
public:
window(const v2u& size, str_view title, bool vsync, bool fullscreen);
window(const v2u& size, str_view title, bool vsync, bool resizable, bool fullscreen);
~window() noexcept final;
void hide() noexcept;
@@ -84,6 +86,8 @@ namespace e2d
void on_mouse_scroll(const v2f& delta) noexcept final;
void on_mouse_button(mouse_button btn, mouse_button_action act) noexcept final;
void on_keyboard_key(keyboard_key key, u32 scancode, keyboard_key_action act) noexcept final;
void on_window_size(const v2u& size) noexcept final;
void on_framebuffer_size(const v2u& size) noexcept final;
void on_window_close() noexcept final;
void on_window_focus(bool focused) noexcept final;
void on_window_minimize(bool minimized) noexcept final;