mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Merge branch 'master' into docking
This commit is contained in:
		@@ -35,6 +35,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
			
		||||
 - scrolling/style: shadows on scrollable areas to denote that there is more contents
 | 
			
		||||
 | 
			
		||||
 - drawdata: make it easy to clone (or swap?) a ImDrawData so user can easily save that data if they use threaded rendering.
 | 
			
		||||
 - drawlist: add calctextsize func to facilitate consistent code from user pov
 | 
			
		||||
 - drawlist: end-user probably can't call Clear() directly because we expect a texture to be pushed in the stack.
 | 
			
		||||
 - drawlist: maintaining bounding box per command would allow to merge draw command when clipping isn't relied on (typical non-scrolling window or non-overflowing column would merge with previous command).
 | 
			
		||||
 - drawlist: primitives/helpers to manipulate vertices post submission, so e.g. a quad/rect can be resized to fit later submitted content, _without_ using the ChannelSplit api
 | 
			
		||||
 
 | 
			
		||||
@@ -19,39 +19,46 @@ SOURCES = main.cpp
 | 
			
		||||
SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_opengl2.cpp
 | 
			
		||||
SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
			
		||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
			
		||||
 | 
			
		||||
UNAME_S := $(shell uname -s)
 | 
			
		||||
 | 
			
		||||
CXXFLAGS = -I../ -I../../
 | 
			
		||||
CXXFLAGS += -g -Wall -Wformat
 | 
			
		||||
LIBS =
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## BUILD FLAGS PER PLATFORM
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
			
		||||
	ECHO_MESSAGE = "Linux"
 | 
			
		||||
	LIBS = -lGL `pkg-config --static --libs glfw3`
 | 
			
		||||
	LIBS += -lGL `pkg-config --static --libs glfw3`
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I../ -I../../ `pkg-config --cflags glfw3`
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += `pkg-config --cflags glfw3`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
			
		||||
	ECHO_MESSAGE = "Mac OS X"
 | 
			
		||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
			
		||||
	#LIBS += -L/usr/local/lib -lglfw3
 | 
			
		||||
	LIBS += -L/usr/local/lib -lglfw
 | 
			
		||||
	LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
			
		||||
	LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
			
		||||
	#LIBS += -lglfw3
 | 
			
		||||
	LIBS += -lglfw
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I../ -I../../ -I/usr/local/include
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
			
		||||
   ECHO_MESSAGE = "Windows"
 | 
			
		||||
   LIBS = -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
			
		||||
	ECHO_MESSAGE = "MinGW"
 | 
			
		||||
	LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
			
		||||
 | 
			
		||||
   CXXFLAGS = -I../ -I../../ -I../libs/gl3w `pkg-config --cflags glfw3`
 | 
			
		||||
   CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += -I../libs/gl3w `pkg-config --cflags glfw3`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## BUILD RULES
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
%.o:%.cpp
 | 
			
		||||
	$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,17 @@ SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui
 | 
			
		||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
			
		||||
UNAME_S := $(shell uname -s)
 | 
			
		||||
 | 
			
		||||
CXXFLAGS = -I../ -I../../
 | 
			
		||||
CXXFLAGS += -g -Wall -Wformat
 | 
			
		||||
LIBS =
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## OPENGL LOADER
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
## Using OpenGL loader: gl3w [default]
 | 
			
		||||
SOURCES += ../libs/gl3w/GL/gl3w.c
 | 
			
		||||
CXXFLAGS = -I../libs/gl3w
 | 
			
		||||
CXXFLAGS += -I../libs/gl3w
 | 
			
		||||
 | 
			
		||||
## Using OpenGL loader: glew
 | 
			
		||||
## (This assumes a system-wide installation)
 | 
			
		||||
@@ -44,30 +48,28 @@ CXXFLAGS = -I../libs/gl3w
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
			
		||||
	ECHO_MESSAGE = "Linux"
 | 
			
		||||
	LIBS = -lGL `pkg-config --static --libs glfw3`
 | 
			
		||||
	LIBS += -lGL `pkg-config --static --libs glfw3`
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS += -I../ -I../../  `pkg-config --cflags glfw3`
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += `pkg-config --cflags glfw3`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
			
		||||
	ECHO_MESSAGE = "Mac OS X"
 | 
			
		||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
			
		||||
	#LIBS += -L/usr/local/lib -lglfw3
 | 
			
		||||
	LIBS += -L/usr/local/lib -lglfw
 | 
			
		||||
	LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
			
		||||
	LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
			
		||||
	#LIBS += -lglfw3
 | 
			
		||||
	LIBS += -lglfw
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS += -I../ -I../../ -I/usr/local/include
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
			
		||||
   ECHO_MESSAGE = "Windows"
 | 
			
		||||
   LIBS = -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
			
		||||
	ECHO_MESSAGE = "MinGW"
 | 
			
		||||
	LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
			
		||||
 | 
			
		||||
   CXXFLAGS += -I../ -I../../ `pkg-config --cflags glfw3`
 | 
			
		||||
   CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += `pkg-config --cflags glfw3`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -108,6 +108,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
			
		||||
        // Create Vulkan Instance without any debug feature
 | 
			
		||||
        err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
 | 
			
		||||
        check_vk_result(err);
 | 
			
		||||
        IM_UNUSED(g_DebugReport);
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -142,7 +143,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        free(queues);
 | 
			
		||||
        IM_ASSERT(g_QueueFamily != -1);
 | 
			
		||||
        IM_ASSERT(g_QueueFamily != (uint32_t)-1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Create Logical Device (with 1 queue)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
#
 | 
			
		||||
# Cross Platform Makefile
 | 
			
		||||
# Compatible with Ubuntu 14.04.1 and Mac OS X
 | 
			
		||||
# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
 | 
			
		||||
#
 | 
			
		||||
# Linux:
 | 
			
		||||
#   apt-get install freeglut3-dev
 | 
			
		||||
@@ -14,37 +14,40 @@ SOURCES = main.cpp
 | 
			
		||||
SOURCES += ../imgui_impl_glut.cpp ../imgui_impl_opengl2.cpp
 | 
			
		||||
SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
			
		||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
			
		||||
 | 
			
		||||
UNAME_S := $(shell uname -s)
 | 
			
		||||
 | 
			
		||||
CXXFLAGS = -I../ -I../../
 | 
			
		||||
CXXFLAGS += -g -Wall -Wformat
 | 
			
		||||
LIBS =
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## BUILD FLAGS PER PLATFORM
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
			
		||||
	ECHO_MESSAGE = "Linux"
 | 
			
		||||
	LIBS = -lGL -lglut
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I ../ -I../..
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	LIBS += -lGL -lglut
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
			
		||||
	ECHO_MESSAGE = "Mac OS X"
 | 
			
		||||
	LIBS = -framework OpenGL -framework GLUT
 | 
			
		||||
	LIBS += -framework OpenGL -framework GLUT
 | 
			
		||||
	LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I .. -I../..
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
			
		||||
   ECHO_MESSAGE = "Windows"
 | 
			
		||||
   LIBS = -lgdi32 -lopengl32 -limm32 -lglut
 | 
			
		||||
 | 
			
		||||
   CXXFLAGS = -I ../ -I../../
 | 
			
		||||
   CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	ECHO_MESSAGE = "MinGW"
 | 
			
		||||
	LIBS += -lgdi32 -lopengl32 -limm32 -lglut
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## BUILD RULES
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
%.o:%.cpp
 | 
			
		||||
	$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
			
		||||
 
 | 
			
		||||
@@ -15,40 +15,49 @@
 | 
			
		||||
#CXX = clang++
 | 
			
		||||
 | 
			
		||||
EXE = example_sdl_opengl2
 | 
			
		||||
SOURCES = main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp
 | 
			
		||||
SOURCES = main.cpp
 | 
			
		||||
SOURCES += ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp
 | 
			
		||||
SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
			
		||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
			
		||||
 | 
			
		||||
UNAME_S := $(shell uname -s)
 | 
			
		||||
 | 
			
		||||
CXXFLAGS = -I../ -I../../
 | 
			
		||||
CXXFLAGS += -g -Wall -Wformat
 | 
			
		||||
LIBS =
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## BUILD FLAGS PER PLATFORM
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
			
		||||
	ECHO_MESSAGE = "Linux"
 | 
			
		||||
	LIBS = -lGL -ldl `sdl2-config --libs`
 | 
			
		||||
	LIBS += -lGL -ldl `sdl2-config --libs`
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I ../ -I../../  `sdl2-config --cflags`
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += `sdl2-config --cflags`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
			
		||||
	ECHO_MESSAGE = "Mac OS X"
 | 
			
		||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
			
		||||
	LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
			
		||||
	LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I ../ -I../../ -I/usr/local/include `sdl2-config --cflags`
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += `sdl2-config --cflags`
 | 
			
		||||
	CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
			
		||||
   ECHO_MESSAGE = "Windows"
 | 
			
		||||
   LIBS = -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
			
		||||
	ECHO_MESSAGE = "MinGW"
 | 
			
		||||
	LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
			
		||||
 | 
			
		||||
   CXXFLAGS = -I ../ -I../../ `pkg-config --cflags sdl2`
 | 
			
		||||
   CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += `pkg-config --cflags sdl2`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## BUILD RULES
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
%.o:%.cpp
 | 
			
		||||
	$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,17 @@ SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui
 | 
			
		||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
			
		||||
UNAME_S := $(shell uname -s)
 | 
			
		||||
 | 
			
		||||
CXXFLAGS = -I../ -I../../
 | 
			
		||||
CXXFLAGS += -g -Wall -Wformat
 | 
			
		||||
LIBS =
 | 
			
		||||
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
## OPENGL LOADER
 | 
			
		||||
##---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
## Using OpenGL loader: gl3w [default]
 | 
			
		||||
SOURCES += ../libs/gl3w/GL/gl3w.c
 | 
			
		||||
CXXFLAGS = -I../libs/gl3w
 | 
			
		||||
CXXFLAGS += -I../libs/gl3w
 | 
			
		||||
 | 
			
		||||
## Using OpenGL loader: glew
 | 
			
		||||
## (This assumes a system-wide installation)
 | 
			
		||||
@@ -44,28 +48,27 @@ CXXFLAGS = -I../libs/gl3w
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
			
		||||
	ECHO_MESSAGE = "Linux"
 | 
			
		||||
	LIBS = -lGL -ldl `sdl2-config --libs`
 | 
			
		||||
	LIBS += -lGL -ldl `sdl2-config --libs`
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I../ -I../../ -I../libs/gl3w `sdl2-config --cflags`
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += -I../libs/gl3w `sdl2-config --cflags`
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
			
		||||
	ECHO_MESSAGE = "Mac OS X"
 | 
			
		||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
			
		||||
	LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
			
		||||
	LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
			
		||||
 | 
			
		||||
	CXXFLAGS = -I../ -I../../ -I../libs/gl3w -I/usr/local/include `sdl2-config --cflags`
 | 
			
		||||
	CXXFLAGS += -Wall -Wformat
 | 
			
		||||
	CXXFLAGS += -I../libs/gl3w `sdl2-config --cflags`
 | 
			
		||||
	CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
			
		||||
	CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
			
		||||
   ECHO_MESSAGE = "Windows"
 | 
			
		||||
   LIBS = -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
			
		||||
   ECHO_MESSAGE = "MinGW"
 | 
			
		||||
   LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
			
		||||
 | 
			
		||||
   CXXFLAGS = -I../ -I../../ -I../libs/gl3w `pkg-config --cflags sdl2`
 | 
			
		||||
   CXXFLAGS += -Wall -Wformat
 | 
			
		||||
   CXXFLAGS += -I../libs/gl3w `pkg-config --cflags sdl2`
 | 
			
		||||
   CFLAGS = $(CXXFLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -100,6 +100,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
			
		||||
        // Create Vulkan Instance without any debug feature
 | 
			
		||||
        err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
 | 
			
		||||
        check_vk_result(err);
 | 
			
		||||
        IM_UNUSED(g_DebugReport);
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -134,7 +135,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        free(queues);
 | 
			
		||||
        IM_ASSERT(g_QueueFamily != -1);
 | 
			
		||||
        IM_ASSERT(g_QueueFamily != (uint32_t)-1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Create Logical Device (with 1 queue)
 | 
			
		||||
 
 | 
			
		||||
@@ -352,7 +352,8 @@ enum ImGuiSelectableFlagsPrivate_
 | 
			
		||||
    ImGuiSelectableFlags_NoHoldingActiveID  = 1 << 10,
 | 
			
		||||
    ImGuiSelectableFlags_PressedOnClick     = 1 << 11,
 | 
			
		||||
    ImGuiSelectableFlags_PressedOnRelease   = 1 << 12,
 | 
			
		||||
    ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 13
 | 
			
		||||
    ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 13,
 | 
			
		||||
    ImGuiSelectableFlags_AllowItemOverlap   = 1 << 14
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum ImGuiSeparatorFlags_
 | 
			
		||||
 
 | 
			
		||||
@@ -643,7 +643,7 @@ bool ImGui::ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size, ImGuiBu
 | 
			
		||||
    const ImGuiID id = window->GetID(str_id);
 | 
			
		||||
    const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size);
 | 
			
		||||
    const float default_size = GetFrameHeight();
 | 
			
		||||
    ItemSize(bb, (size.y >= default_size) ? g.Style.FramePadding.y : 0.0f);
 | 
			
		||||
    ItemSize(size, (size.y >= default_size) ? g.Style.FramePadding.y : 0.0f);
 | 
			
		||||
    if (!ItemAdd(bb, id))
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
@@ -1071,8 +1071,9 @@ void ImGui::ProgressBar(float fraction, const ImVec2& size_arg, const char* over
 | 
			
		||||
    const ImGuiStyle& style = g.Style;
 | 
			
		||||
 | 
			
		||||
    ImVec2 pos = window->DC.CursorPos;
 | 
			
		||||
    ImRect bb(pos, pos + CalcItemSize(size_arg, CalcItemWidth(), g.FontSize + style.FramePadding.y*2.0f));
 | 
			
		||||
    ItemSize(bb, style.FramePadding.y);
 | 
			
		||||
    ImVec2 size = CalcItemSize(size_arg, CalcItemWidth(), g.FontSize + style.FramePadding.y*2.0f);
 | 
			
		||||
    ImRect bb(pos, pos + size);
 | 
			
		||||
    ItemSize(size, style.FramePadding.y);
 | 
			
		||||
    if (!ItemAdd(bb, 0))
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
@@ -1145,7 +1146,7 @@ void ImGui::Dummy(const ImVec2& size)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size);
 | 
			
		||||
    ItemSize(bb);
 | 
			
		||||
    ItemSize(size);
 | 
			
		||||
    ItemAdd(bb, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -5294,7 +5295,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
			
		||||
    ImVec2 pos = window->DC.CursorPos;
 | 
			
		||||
    pos.y += window->DC.CurrentLineTextBaseOffset;
 | 
			
		||||
    ImRect bb_inner(pos, pos + size);
 | 
			
		||||
    ItemSize(bb_inner);
 | 
			
		||||
    ItemSize(size);
 | 
			
		||||
 | 
			
		||||
    // Fill horizontal space.
 | 
			
		||||
    ImVec2 window_padding = window->WindowPadding;
 | 
			
		||||
@@ -5341,6 +5342,8 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_PressedOnRelease) button_flags |= ImGuiButtonFlags_PressedOnRelease;
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled;
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_AllowDoubleClick) button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick;
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_AllowItemOverlap) button_flags |= ImGuiButtonFlags_AllowItemOverlap;
 | 
			
		||||
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_Disabled)
 | 
			
		||||
        selected = false;
 | 
			
		||||
 | 
			
		||||
@@ -5356,6 +5359,9 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
			
		||||
    if (pressed)
 | 
			
		||||
        MarkItemEdited(id);
 | 
			
		||||
 | 
			
		||||
    if (flags & ImGuiSelectableFlags_AllowItemOverlap)
 | 
			
		||||
        SetItemAllowOverlap();
 | 
			
		||||
 | 
			
		||||
    // Render
 | 
			
		||||
    if (hovered || selected)
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user