Ejemplo n.º 1
0
        // Taken from https://github.com/ocornut/imgui/issues/1496#issuecomment-655048353
        private static void BeginGroupPanel(string name, Vector2 size)
        {
            ImGui.BeginGroup();
            var cursorPos   = ImGui.GetCursorScreenPos();
            var itemSpacing = ImGui.GetStyle().ItemSpacing;

            ImGui.PushStyleVar(ImGuiStyleVar.FramePadding, 0f);
            ImGui.PushStyleVar(ImGuiStyleVar.ItemSpacing, 0f);

            var frameHeight = ImGui.GetFrameHeight();

            ImGui.BeginGroup();

            Vector2 effectiveSize = size;

            if (size.X < 0.0f)
            {
                effectiveSize.X = ImGui.GetContentRegionAvail().X;
            }
            else
            {
                effectiveSize.X = size.X;
            }
            ImGui.Dummy(new Vector2(effectiveSize.X, 0.0f));

            ImGui.Dummy(new Vector2(frameHeight * 0.5f, 0.0f));
            ImGui.SameLine(0.0f, 0.0f);
            ImGui.BeginGroup();
            ImGui.Dummy(new Vector2(frameHeight * 0.5f, 0.0f));
            ImGui.SameLine(0.0f, 0.0f);
            ImGui.TextUnformatted(name);
            var labelMin = ImGui.GetItemRectMin();
            var labelMax = ImGui.GetItemRectMax();

            ImGui.SameLine(0.0f, 0.0f);
            ImGui.Dummy(new Vector2(0.0f, frameHeight + itemSpacing.Y));
            ImGui.BeginGroup();

            ImGui.PopStyleVar(2);
        }