pthom / hello_imgui

Hello, Dear ImGui: unleash your creativity in app development and prototyping

Home Page:https://pthom.github.io/hello_imgui

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can I change a borderless window size?

vertexi opened this issue · comments

I want to create a window that borderless = true and resizable = true. But according to GLFW's document

GLFW_DECORATED specifies whether the windowed mode window will have window decorations such as a border, a close widget, etc. An undecorated window will not be resizable by the user but will still allow the user to generate close events on some platforms. Possible values are GLFW_TRUE and GLFW_FALSE. This hint is ignored for full screen windows.

So, I wonder if I can write some code to detect the mouse whether drag the corner of window or not, then call function like setwindowsize().

you should try. ImGui provides ImGui::GetMousePos() + ImGui::IsMouseDown() which could help you.

But you may experience difficulties. You are fighting against the OS and/or Glfw.

This is now possible, see new content of AppWindowParams:

struct AppWindowParams
{
    std::string windowTitle;

    WindowGeometry windowGeometry;

    // if true, then save & restore from last run
    bool restorePreviousGeometry = false;

    bool resizable = true;
    bool hidden = false;

    bool   borderless = false;
    bool   borderlessMovable = true;
    bool   borderlessResizable = true;
    bool   borderlessClosable = true;
    ImVec4 borderlessHighlightColor = ImVec4(0.2f, 0.4f, 1.f, 0.3f);


    EdgeInsets edgeInsets;
    bool       handleEdgeInsets = true;
};
commented

Magnificent work! Thank you.