Comments. Fix duplicate entries in About box. Synchronize a few small changes from Master branch.

This commit is contained in:
omar 2019-02-01 11:04:04 +01:00
parent f906d53f7d
commit cbf24a9151
3 changed files with 13 additions and 20 deletions

View File

@ -884,8 +884,8 @@ CODE
(The ImGuiWindowFlags_NoDecoration flag itself is a shortcut for NoTitleBar | NoResize | NoScrollbar | NoCollapse) (The ImGuiWindowFlags_NoDecoration flag itself is a shortcut for NoTitleBar | NoResize | NoScrollbar | NoCollapse)
Then you can retrieve the ImDrawList* via GetWindowDrawList() and draw to it in any way you like. Then you can retrieve the ImDrawList* via GetWindowDrawList() and draw to it in any way you like.
- You can call ImGui::GetOverlayDrawList() and use this draw list to display contents over every other imgui windows (1 overlay per viewport). - You can call ImGui::GetOverlayDrawList() and use this draw list to display contents over every other imgui windows (1 overlay per viewport).
- You can create your own ImDrawList instance. You'll need to initialize them ImGui::GetDrawListSharedData(), or create your own ImDrawListSharedData, - You can create your own ImDrawList instance. You'll need to initialize them ImGui::GetDrawListSharedData(), or create
and then call your rendered code with your own ImDrawList or ImDrawData data. your own ImDrawListSharedData, and then call your rendered code with your own ImDrawList or ImDrawData data.
Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display) Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display)
A: - You can control Dear ImGui with a gamepad. Read about navigation in "Using gamepad/keyboard navigation controls". A: - You can control Dear ImGui with a gamepad. Read about navigation in "Using gamepad/keyboard navigation controls".
@ -3576,7 +3576,7 @@ void ImGui::NewFrame()
UpdateViewportsNewFrame(); UpdateViewportsNewFrame();
// Setup current font, and draw list shared data // Setup current font and draw list shared data
// FIXME-VIEWPORT: the concept of a single ClipRectFullscreen is not ideal! // FIXME-VIEWPORT: the concept of a single ClipRectFullscreen is not ideal!
g.IO.Fonts->Locked = true; g.IO.Fonts->Locked = true;
SetCurrentFont(GetDefaultFont()); SetCurrentFont(GetDefaultFont());
@ -3587,7 +3587,8 @@ void ImGui::NewFrame()
g.DrawListSharedData.ClipRectFullscreen = ImVec4(0.0f, 0.0f, virtual_space_max.x, virtual_space_max.y); g.DrawListSharedData.ClipRectFullscreen = ImVec4(0.0f, 0.0f, virtual_space_max.x, virtual_space_max.y);
g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol; g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol;
// Mark rendering data as invalid to prevent user who may have a handle on it to use it. Setup Overlay draw list for the viewport. // Setup Overlay draw list for the viewport.
// Mark rendering data as invalid to prevent user who may have a handle on it to use it.
for (int n = 0; n < g.Viewports.Size; n++) for (int n = 0; n < g.Viewports.Size; n++)
{ {
ImGuiViewportP* viewport = g.Viewports[n]; ImGuiViewportP* viewport = g.Viewports[n];
@ -5110,7 +5111,7 @@ static void ImGui::UpdateManualResize(ImGuiWindow* window, const ImVec2& size_au
} }
// Apply back modified position/size to window // Apply back modified position/size to window
if (size_target.x != FLT_MAX && (size_target.x != window->SizeFull.x || size_target.y != window->SizeFull.y)) if (size_target.x != FLT_MAX)
{ {
window->SizeFull = size_target; window->SizeFull = size_target;
MarkIniSettingsDirty(window); MarkIniSettingsDirty(window);
@ -5451,9 +5452,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
MarkIniSettingsDirty(window); MarkIniSettingsDirty(window);
} }
//if (window->DockNode && window->DockIsActive)
// size_full_modified = window->SizeFull;
// Apply minimum/maximum window size constraints and final size // Apply minimum/maximum window size constraints and final size
window->SizeFull = CalcSizeAfterConstraint(window, window->SizeFull); window->SizeFull = CalcSizeAfterConstraint(window, window->SizeFull);
window->Size = window->Collapsed && !(flags & ImGuiWindowFlags_ChildWindow) ? window->TitleBarRect().GetSize() : window->SizeFull; window->Size = window->Collapsed && !(flags & ImGuiWindowFlags_ChildWindow) ? window->TitleBarRect().GetSize() : window->SizeFull;
@ -5596,7 +5594,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
{ {
if (flags & ImGuiWindowFlags_Popup) if (flags & ImGuiWindowFlags_Popup)
want_focus = true; want_focus = true;
else if ((window->DockIsActive || !(flags & ImGuiWindowFlags_ChildWindow)) && !(flags & ImGuiWindowFlags_Tooltip)) else if ((window->DockIsActive || (flags & ImGuiWindowFlags_ChildWindow) == 0) && !(flags & ImGuiWindowFlags_Tooltip))
want_focus = true; want_focus = true;
} }
@ -11398,10 +11396,9 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w
node->IsFocused = is_focused; node->IsFocused = is_focused;
if (is_focused) if (is_focused)
node->LastFrameFocused = g.FrameCount; node->LastFrameFocused = g.FrameCount;
// Notify root of visible window (used to display title in OS task bar)
if (node->VisibleWindow) if (node->VisibleWindow)
{ {
// Notify root of visible window (used to display title in OS task bar)
if (is_focused || root_node->VisibleWindow == NULL) if (is_focused || root_node->VisibleWindow == NULL)
root_node->VisibleWindow = node->VisibleWindow; root_node->VisibleWindow = node->VisibleWindow;
if (node->TabBar) if (node->TabBar)
@ -13173,6 +13170,9 @@ static void ImGui::DockSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettings
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// [SECTION] LOGGING/CAPTURING // [SECTION] LOGGING/CAPTURING
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// All text output from the interface can be captured into tty/file/clipboard.
// By default, tree nodes are automatically opened during logging.
//-----------------------------------------------------------------------------
// Pass text data straight to log (without being displayed) // Pass text data straight to log (without being displayed)
void ImGui::LogText(const char* fmt, ...) void ImGui::LogText(const char* fmt, ...)

View File

@ -2729,9 +2729,6 @@ void ImGui::ShowAboutWindow(bool* p_open)
#endif #endif
#ifdef IMGUI_HAS_DOCK #ifdef IMGUI_HAS_DOCK
ImGui::Text("define: IMGUI_HAS_DOCK"); ImGui::Text("define: IMGUI_HAS_DOCK");
#endif
#ifdef IMGUI_HAS_TABS
ImGui::Text("define: IMGUI_HAS_TABS");
#endif #endif
ImGui::Separator(); ImGui::Separator();
ImGui::Text("io.BackendPlatformName: %s", io.BackendPlatformName ? io.BackendPlatformName : "NULL"); ImGui::Text("io.BackendPlatformName: %s", io.BackendPlatformName ? io.BackendPlatformName : "NULL");
@ -2756,10 +2753,6 @@ void ImGui::ShowAboutWindow(bool* p_open)
if (io.ConfigDockingWithShift) ImGui::Text("io.ConfigDockingWithShift"); if (io.ConfigDockingWithShift) ImGui::Text("io.ConfigDockingWithShift");
if (io.ConfigDockingTabBarOnSingleWindows) ImGui::Text("io.ConfigDockingTabBarOnSingleWindows"); if (io.ConfigDockingTabBarOnSingleWindows) ImGui::Text("io.ConfigDockingTabBarOnSingleWindows");
if (io.ConfigDockingTransparentPayload) ImGui::Text("io.ConfigDockingTransparentPayload"); if (io.ConfigDockingTransparentPayload) ImGui::Text("io.ConfigDockingTransparentPayload");
if (io.ConfigViewportsNoAutoMerge) ImGui::Text("io.ConfigViewportsNoAutoMerge");
if (io.ConfigViewportsNoTaskBarIcon) ImGui::Text("io.ConfigViewportsNoTaskBarIcon");
if (io.ConfigViewportsNoDecoration) ImGui::Text("io.ConfigViewportsNoDecoration");
if (io.ConfigViewportsNoParent) ImGui::Text("io.ConfigViewportsNoParent");
if (io.ConfigMacOSXBehaviors) ImGui::Text("io.ConfigMacOSXBehaviors"); if (io.ConfigMacOSXBehaviors) ImGui::Text("io.ConfigMacOSXBehaviors");
if (io.ConfigInputTextCursorBlink) ImGui::Text("io.ConfigInputTextCursorBlink"); if (io.ConfigInputTextCursorBlink) ImGui::Text("io.ConfigInputTextCursorBlink");
if (io.ConfigWindowsResizeFromEdges) ImGui::Text("io.ConfigWindowsResizeFromEdges"); if (io.ConfigWindowsResizeFromEdges) ImGui::Text("io.ConfigWindowsResizeFromEdges");
@ -4263,7 +4256,7 @@ void ShowExampleAppDocuments(bool* p_open)
return; return;
} }
// Menu Bar // Menu
if (ImGui::BeginMenuBar()) if (ImGui::BeginMenuBar())
{ {
if (ImGui::BeginMenu("File")) if (ImGui::BeginMenu("File"))

View File

@ -352,7 +352,7 @@ enum ImGuiSeparatorFlags_
ImGuiSeparatorFlags_Vertical = 1 << 1 ImGuiSeparatorFlags_Vertical = 1 << 1
}; };
// Transient per-window ItemFlags, reset at the beginning of the frame. For child windows: inherited from parent on first Begin(). // Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin().
// This is going to be exposed in imgui.h when stabilized enough. // This is going to be exposed in imgui.h when stabilized enough.
enum ImGuiItemFlags_ enum ImGuiItemFlags_
{ {