IMGUI_APIvoidSetScrollY(floatscroll_y);// set scrolling amount [0..GetScrollMaxY()]
IMGUI_APIvoidSetScrollY(floatscroll_y);// set scrolling amount [0..GetScrollMaxY()]
IMGUI_APIvoidSetScrollHere(floatcenter_y_ratio=0.5f);// adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom.
IMGUI_APIvoidSetScrollHere(floatcenter_y_ratio=0.5f);// adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom.
IMGUI_APIvoidSetScrollFromPosY(floatpos_y,floatcenter_y_ratio=0.5f);// adjust scrolling amount to make given position valid. use GetCursorPos() or GetCursorStartPos()+offset to get valid positions.
IMGUI_APIvoidSetScrollFromPosY(floatpos_y,floatcenter_y_ratio=0.5f);// adjust scrolling amount to make given position valid. use GetCursorPos() or GetCursorStartPos()+offset to get valid positions.
IMGUI_APIvoidSetKeyboardFocusHere(intoffset=0);// focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use negative 'offset' to access previous widgets.
IMGUI_APIvoidSetKeyboardFocusHere(intoffset=0);// FIXME-NAVIGATION // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use negative 'offset' to access previous widgets.
IMGUI_APIvoidSetStateStorage(ImGuiStorage*tree);// replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it)
IMGUI_APIvoidSetStateStorage(ImGuiStorage*tree);// replace tree state storage with our own (if you want to manipulate it yourself, typically clear subsection of it)
IMGUI_APIImGuiStorage*GetStateStorage();
IMGUI_APIImGuiStorage*GetStateStorage();
@ -396,14 +396,17 @@ namespace ImGui
IMGUI_APIboolIsItemHovered();// is the last item hovered by mouse, and usable?
IMGUI_APIboolIsItemHovered();// is the last item hovered by mouse, and usable?
IMGUI_APIboolIsItemHoveredRect();// is the last item hovered by mouse? even if another item is active or window is blocked by popup while we are hovering this
IMGUI_APIboolIsItemHoveredRect();// is the last item hovered by mouse? even if another item is active or window is blocked by popup while we are hovering this
IMGUI_APIboolIsItemActive();// is the last item active? (e.g. button being held, text field being edited- items that don't interact will always return false)
IMGUI_APIboolIsItemActive();// is the last item active? (e.g. button being held, text field being edited- items that don't interact will always return false)
IMGUI_APIboolIsItemFocused();// is the last item focused for keyboard/gamepad navigation?
IMGUI_APIboolIsItemClicked(intmouse_button=0);// is the last item clicked? (e.g. button/node just clicked on)
IMGUI_APIboolIsItemClicked(intmouse_button=0);// is the last item clicked? (e.g. button/node just clicked on)
IMGUI_APIboolIsItemVisible();// is the last item visible? (aka not out of sight due to clipping/scrolling.)
IMGUI_APIboolIsItemVisible();// is the last item visible? (aka not out of sight due to clipping/scrolling.)
IMGUI_APIboolIsAnyItemHovered();
IMGUI_APIboolIsAnyItemHovered();
IMGUI_APIboolIsAnyItemActive();
IMGUI_APIboolIsAnyItemActive();
IMGUI_APIboolIsAnyItemFocused();
IMGUI_APIImVec2GetItemRectMin();// get bounding rect of last item in screen space
IMGUI_APIImVec2GetItemRectMin();// get bounding rect of last item in screen space
IMGUI_APIImVec2GetItemRectMax();// "
IMGUI_APIImVec2GetItemRectMax();// "
IMGUI_APIImVec2GetItemRectSize();// "
IMGUI_APIImVec2GetItemRectSize();// "
IMGUI_APIvoidSetItemAllowOverlap();// allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area.
IMGUI_APIvoidSetItemAllowOverlap();// allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area.
IMGUI_APIvoidSetItemDefaultFocus();// make last item the default focused item of a window
IMGUI_APIboolIsWindowFocused();// is current window focused
IMGUI_APIboolIsWindowFocused();// is current window focused
IMGUI_APIboolIsWindowHovered();// is current window hovered and hoverable (not blocked by a popup) (differentiate child windows from each others)
IMGUI_APIboolIsWindowHovered();// is current window hovered and hoverable (not blocked by a popup) (differentiate child windows from each others)
IMGUI_APIboolIsWindowHoveredRect();// is current window hovered, disregarding of any consideration of being blocked by a popup. (unlike IsWindowHovered() this will return true even if the window is blocked because of a popup)
IMGUI_APIboolIsWindowHoveredRect();// is current window hovered, disregarding of any consideration of being blocked by a popup. (unlike IsWindowHovered() this will return true even if the window is blocked because of a popup)
@ -506,6 +509,7 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_AlwaysVerticalScrollbar=1<<14,// Always show vertical scrollbar (even if ContentSize.y < Size.y)
ImGuiWindowFlags_AlwaysVerticalScrollbar=1<<14,// Always show vertical scrollbar (even if ContentSize.y < Size.y)
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<<15,// Always show horizontal scrollbar (even if ContentSize.x < Size.x)
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<<15,// Always show horizontal scrollbar (even if ContentSize.x < Size.x)
ImGuiWindowFlags_AlwaysUseWindowPadding=1<<16,// Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
ImGuiWindowFlags_AlwaysUseWindowPadding=1<<16,// Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
ImGuiWindowFlags_NoNav=1<<17,// No directional gamepad/keyboard navigation
// [Internal]
// [Internal]
ImGuiWindowFlags_ChildWindow=1<<20,// Don't use! For internal use by BeginChild()
ImGuiWindowFlags_ChildWindow=1<<20,// Don't use! For internal use by BeginChild()
ImGuiWindowFlags_ChildWindowAutoFitX=1<<21,// Don't use! For internal use by BeginChild()
ImGuiWindowFlags_ChildWindowAutoFitX=1<<21,// Don't use! For internal use by BeginChild()
@ -590,6 +594,19 @@ enum ImGuiKey_
ImGuiKey_X,// for text edit CTRL+X: cut
ImGuiKey_X,// for text edit CTRL+X: cut
ImGuiKey_Y,// for text edit CTRL+Y: redo
ImGuiKey_Y,// for text edit CTRL+Y: redo
ImGuiKey_Z,// for text edit CTRL+Z: undo
ImGuiKey_Z,// for text edit CTRL+Z: undo
// Inputs for Gamepad/Keyboard navigation. Feed those buttons with the input of either or both peripherals involved.
ImGuiKey_NavActivate,// press button, tweak value // e.g. Space key, Circle button
ImGuiKey_NavCancel,// close menu/popup/child, unselect // e.g. Escape key, Cross button
ImGuiKey_NavInput,// text input // e.g. Enter key, Triangle button
ImGuiKey_NavWindowing,// change focus, move, resize // e.g. Square button
ImGuiKey_NavLeft,// e.g. Left arrow, D-Pad left
ImGuiKey_NavRight,// e.g. Right arrow, D-Pad right
ImGuiKey_NavUp,// e.g. Up arrow, D-Pad up
ImGuiKey_NavDown,// e.g. Down arrow, D-Pad down
ImGuiKey_NavTweakFaster,// e.g. Shift key, R-trigger
ImGuiKey_NavTweakSlower,// e.g. Alt key, L-trigger
ImGuiKey_COUNT
ImGuiKey_COUNT
};
};
@ -751,6 +768,7 @@ struct ImGuiIO
intKeyMap[ImGuiKey_COUNT];// <unset> // Map of indices into the KeysDown[512] entries array
intKeyMap[ImGuiKey_COUNT];// <unset> // Map of indices into the KeysDown[512] entries array
floatKeyRepeatDelay;// = 0.250f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
floatKeyRepeatDelay;// = 0.250f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
floatKeyRepeatRate;// = 0.020f // When holding a key/button, rate at which it repeats, in seconds.
floatKeyRepeatRate;// = 0.020f // When holding a key/button, rate at which it repeats, in seconds.
boolNavMovesMouse;// = false // Directional navigation move the mouse cursor (update MousePos and set
void*UserData;// = NULL // Store your own data for retrieval by callbacks.
void*UserData;// = NULL // Store your own data for retrieval by callbacks.
ImFontAtlas*Fonts;// <auto> // Load and assemble one or more fonts into a single tightly packed texture. Output to Fonts array.
ImFontAtlas*Fonts;// <auto> // Load and assemble one or more fonts into a single tightly packed texture. Output to Fonts array.
@ -817,6 +835,9 @@ struct ImGuiIO
boolWantCaptureMouse;// Mouse is hovering a window or widget is active (= ImGui will use your mouse input)
boolWantCaptureMouse;// Mouse is hovering a window or widget is active (= ImGui will use your mouse input)
boolWantCaptureKeyboard;// Widget is active (= ImGui will use your keyboard input)
boolWantCaptureKeyboard;// Widget is active (= ImGui will use your keyboard input)
boolWantTextInput;// Text input widget is active, which will read input characters from the InputCharacters array.
boolWantTextInput;// Text input widget is active, which will read input characters from the InputCharacters array.
boolWantMoveMouse;// MousePos has been altered, used only if 'NavMovesMouse=true', back-end can reposition mouse on next frame.
boolNavUsable;// Directional navigation is currently allowed (ImGuiKey_NavXXX events).
boolNavActive;// Directional navigation is active/visible and currently allowed (ImGuiKey_NavXXX events).
floatFramerate;// Framerate estimation, in frame per second. Rolling average estimation based on IO.DeltaTime over 120 frames
floatFramerate;// Framerate estimation, in frame per second. Rolling average estimation based on IO.DeltaTime over 120 frames
intMetricsAllocs;// Number of active memory allocations
intMetricsAllocs;// Number of active memory allocations
intMetricsRenderVertices;// Vertices output during last call to Render()
intMetricsRenderVertices;// Vertices output during last call to Render()
ImGui::SameLine();ShowHelpMarker("Request ImGui to move your move cursor when using gamepad/keyboard navigation. NewFrame() will change io.MousePos and set the io.WantMoveMouse flag, your backend will need to apply the new mouse position.");
ImGui::SameLine();ShowHelpMarker("Request ImGui to render a mouse cursor for you in software. Note that a mouse cursor rendered via regular GPU rendering will feel more laggy than hardware cursor, but will be more in sync with your other visuals.");
ImGui::SameLine();ShowHelpMarker("Request ImGui to render a mouse cursor for you in software. Note that a mouse cursor rendered via regular GPU rendering will feel more laggy than hardware cursor, but will be more in sync with your other visuals.");
ImVector<ImGuiPopupRef>OpenPopupStack;// Which popups are open (persistent)
ImVector<ImGuiPopupRef>OpenPopupStack;// Which popups are open (persistent)
ImVector<ImGuiPopupRef>CurrentPopupStack;// Which level of BeginPopup() we are in (reset every frame)
ImVector<ImGuiPopupRef>CurrentPopupStack;// Which level of BeginPopup() we are in (reset every frame)
// Navigation data (for gamepad/keyboard)
ImGuiIDNavId;// Nav/focused widget for navigation
ImGuiIDNavActivateId,NavInputId;// ~~ IsKeyPressedMap(ImGuiKey_NavActive) ? NavId : 0, etc. (to make widget code terser)
ImGuiIDNavTabbedId;//
ImRectNavRefRectRel,NavScoringRectScreen;// Reference rectangle, in window space. Modified rectangle for directional navigation scoring, in screen space.
ImGuiWindow*NavWindow;//
ImGuiWindow*NavWindowingTarget;
intNavIdTabCounter;// == NavWindow->DC.FocusIdxTabCounter at time of NavId processing
boolNavIdIsAlive;// Nav widget has been seen this frame ~~ NavRefRectRel is valid
boolNavMousePosDirty;
boolNavDisableHighlight;// When user starts using mouse, we hide gamepad/keyboard functionalities
boolNavDisableMouseHover;// When user starts using gamepad/keyboard, we disable mouse hovering until mouse is touched again
boolNavInitDefaultRequest;// Init request for appearing window to select first item
ImGuiIDNavInitDefaultResultId;
boolNavInitDefaultResultExplicit;// Whether the result was explicitly requested with SetItemDefaultFocus()
boolNavMoveRequest;// Move request for this frame
ImGuiNavDirNavMoveDir;// West/East/North/South
ImGuiIDNavMoveResultBestId;// Best move request candidate
floatNavMoveResultBestDistBox;// Best move request candidate box distance to current NavId
floatNavMoveResultBestDistCenter;// Best move request candidate center distance to current NavId
floatNavMoveResultBestDistAxial;
ImRectNavMoveResultBestRefRectRel;// Best move request candidate bounding box in window space
// Storage for SetNexWindow** and SetNextTreeNode*** functions
// Storage for SetNexWindow** and SetNextTreeNode*** functions
boolLastItemHoveredAndUsable;// Item rectangle is hovered, and its window is currently interactable with (not blocked by a popup preventing access to the window)
boolLastItemHoveredAndUsable;// Item rectangle is hovered, and its window is currently interactable with (not blocked by a popup preventing access to the window)
boolLastItemHoveredRect;// Item rectangle is hovered, but its window may or not be currently interactable with (might be blocked by a popup preventing access to the window)
boolLastItemHoveredRect;// Item rectangle is hovered, but its window may or not be currently interactable with (might be blocked by a popup preventing access to the window)
boolNavHasItems,NavHasItemsNext;// Set when has any navigatable item
boolNavHasScroll;// Set when scrolling can be used (ScrollMax > 0.0f)
IMGUI_APIvoidEndFrame();// Ends the ImGui frame. Automatically called by Render()! you most likely don't need to ever call that yourself directly. If you don't need to render you can call EndFrame() but you'll have wasted CPU already. If you don't need to render, don't create any windows instead!
IMGUI_APIvoidEndFrame();// Ends the ImGui frame. Automatically called by Render()! you most likely don't need to ever call that yourself directly. If you don't need to render you can call EndFrame() but you'll have wasted CPU already. If you don't need to render, don't create any windows instead!