Giter Club home page Giter Club logo

Comments (8)

xahon avatar xahon commented on June 17, 2024 1

You should pass a size to DockSpace() to correctly leave room for a tab bar, otherwise by default DockSpace() will use all remaining space. Probably the right size to use is ImVec2(0.0f, -ImGui::GetFrameHeightWithSpacing())`.

It fixes the problem with unwanted scrollbars. Now I can see tabs at the bottom of the screen without scrolling

from imgui.

ocornut avatar ocornut commented on June 17, 2024

You should pass a size to DockSpace() to correctly leave room for a tab bar, otherwise by default DockSpace() will use all remaining space.
Probably the right size to use is ImVec2(0.0f, -ImGui::GetFrameHeightWithSpacing())`.

from imgui.

ocornut avatar ocornut commented on June 17, 2024

If you want the tab bar to be above the DockSpace() then submit the tab-bar before the DockSpace().

from imgui.

xahon avatar xahon commented on June 17, 2024

When I submit tabbar along with all sub windows before I define dockspace and its settings, it breaks. Tabs are shown in expected position but windows are floating and not docked to anything

from imgui.

xahon avatar xahon commented on June 17, 2024

Oh, I got your point. I can read BeginTabBar into a bool variable, then define dockspace and only then define actual windows

from imgui.

ocornut avatar ocornut commented on June 17, 2024

I cannot understand your question without actual code.
Dockspace needs to be submitted before any window that may be docked into it.
see Examples->Documents for an example.

from imgui.

xahon avatar xahon commented on June 17, 2024

Yeah, thanks, I've figured out how to make tab bar right way

I used this approach in Imgui

// MenuBar
// Dockspace
if (BeginTabBar()) {
   // Draw windows
}

But instead I needed to use this one

// MenuBar
bool tabBarStarted = BeginTabBar();
// Dockspace
if (tabBarStarted) {
   // Draw windows
}

from imgui.

ocornut avatar ocornut commented on June 17, 2024

I think the right pattern you may be looking for is:

if (BeginTabBar(....)
{
    DockSpace(...);
    DrawWindows();
    EndTabBar();
}
else
{
   DockSpace(..., ImGuiDockNodeFlags_KeepAliveOnly);
}

Keeping the dockspace alive ensure windows don't get undocked if other windows than DrawWindows() are docked into this DockSpace(). Otherwise if a DockSpace() stops being alive, all its windows will get undocked.

from imgui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.