Add glfwGetWindowTitle

This adds a function for querying the current title of a window.  This
currently returns a copy of the last title set via GLFW.

Fixes #1448
Closes #1909
Closes #2482
This commit is contained in:
Doug Binks
2024-02-07 19:26:52 +00:00
committed by Camilla Löwy
parent bafece4cf7
commit 95d464bb4b
8 changed files with 81 additions and 2 deletions

View File

@@ -62,6 +62,7 @@ int main(int argc, char** argv)
char min_width_buffer[12] = "", min_height_buffer[12] = "";
char max_width_buffer[12] = "", max_height_buffer[12] = "";
int may_close = true;
char window_title[64] = "";
if (!glfwInit())
exit(EXIT_FAILURE);
@@ -71,7 +72,7 @@ int main(int argc, char** argv)
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
GLFWwindow* window = glfwCreateWindow(600, 630, "Window Features", NULL, NULL);
GLFWwindow* window = glfwCreateWindow(600, 660, "Window Features", NULL, NULL);
if (!window)
{
glfwTerminate();
@@ -109,6 +110,11 @@ int main(int argc, char** argv)
nk_glfw3_font_stash_begin(&atlas);
nk_glfw3_font_stash_end();
// test setting title with result from glfwGetWindowTitle
glfwSetWindowTitle(window, glfwGetWindowTitle(window));
strncpy( window_title, glfwGetWindowTitle(window), sizeof(window_title));
while (!(may_close && glfwWindowShouldClose(window)))
{
int width, height;
@@ -188,11 +194,25 @@ int main(int argc, char** argv)
nk_label(nk, "Press Enter in a text field to set value", NK_TEXT_CENTERED);
nk_flags events;
const nk_flags flags = NK_EDIT_FIELD |
NK_EDIT_SIG_ENTER |
NK_EDIT_GOTO_END_ON_ACTIVATE;
nk_layout_row_dynamic(nk, 30, 2);
nk_label(nk, "Window Title:", NK_TEXT_LEFT);
events = nk_edit_string_zero_terminated( nk, flags, window_title, sizeof(window_title), NULL );
if (events & NK_EDIT_COMMITED)
{
glfwSetWindowTitle(window, window_title);
// we do not need to call glfwGetWindowTitle as we already store the title, but using it here for testing purposes
strncpy( window_title, glfwGetWindowTitle(window), sizeof(window_title));
}
if (position_supported)
{
int xpos, ypos;