From 2c879c34c9aeddae528d2818f7baa6a915d5d77a Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 30 Mar 2022 16:14:20 +0200 Subject: Proper y offset for text, add option to create hidden window and add function to make it visible (map, unmap), fix incorrect copy/move text --- depends/mgl | 2 +- include/mglpp/window/Window.hpp | 2 ++ src/graphics/Text.cpp | 7 +++---- src/window/Window.cpp | 4 ++++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/depends/mgl b/depends/mgl index 131a2f0..956c86f 160000 --- a/depends/mgl +++ b/depends/mgl @@ -1 +1 @@ -Subproject commit 131a2f0b5c51fc821224bf7637ba58df0a5ae15a +Subproject commit 956c86fe4728e6e5239202f1402fd65260ece7c8 diff --git a/include/mglpp/window/Window.hpp b/include/mglpp/window/Window.hpp index 655f63d..93918f4 100644 --- a/include/mglpp/window/Window.hpp +++ b/include/mglpp/window/Window.hpp @@ -35,6 +35,7 @@ namespace mgl { mgl::vec2i min_size; /* (0, 0) = no limit */ mgl::vec2i max_size; /* (0, 0) = no limit */ WindowHandle parent_window = 0; /* 0 = root window */ + bool hidden = false; }; Window(); @@ -53,6 +54,7 @@ namespace mgl { void draw(const Vertex *vertices, size_t vertex_count, PrimitiveType primitive_type, Shader *shader = nullptr); void display(); + void set_visible(bool visible); bool is_open() const; bool has_focus() const; void close(); diff --git a/src/graphics/Text.cpp b/src/graphics/Text.cpp index fa82a88..a30cdf3 100644 --- a/src/graphics/Text.cpp +++ b/src/graphics/Text.cpp @@ -24,16 +24,15 @@ namespace mgl { Text& Text::operator=(const Text &other) { font = other.font; str = other.str; - mgl_text_init(&text, font ? font->internal_font() : nullptr, str.c_str(), str.size()); - mgl_text_set_position(&text, { other.text.position.x, other.text.position.y }); + text = other.text; + mgl_text_set_string(&text, str.c_str(), str.size()); return *this; } Text::Text(Text &&other) { font = std::move(other.font); - str = std::move(other.str); text = std::move(other.text); - mgl_text_init(&text, font ? font->internal_font() : nullptr, str.c_str(), str.size()); + set_string(std::move(other.str)); other.font = nullptr; other.str.clear(); diff --git a/src/window/Window.cpp b/src/window/Window.cpp index c41a0c6..dbb77a3 100644 --- a/src/window/Window.cpp +++ b/src/window/Window.cpp @@ -63,6 +63,10 @@ namespace mgl { mgl_window_display(&window); } + void Window::set_visible(bool visible) { + mgl_window_set_visible(&window, visible); + } + bool Window::is_open() const { return mgl_window_is_open(&window); } -- cgit v1.2.3