@ -64,6 +64,7 @@ struct ImGuiTextBuffer; // Text buffer for logging/accumulating text
structImGuiTextEditCallbackData;// Shared state of ImGui::InputText() when using custom ImGuiTextEditCallback (rare/advanced use)
structImGuiTextEditCallbackData;// Shared state of ImGui::InputText() when using custom ImGuiTextEditCallback (rare/advanced use)
structImGuiSizeConstraintCallbackData;// Structure used to constraint window size in custom ways when using custom ImGuiSizeConstraintCallback (rare/advanced use)
structImGuiSizeConstraintCallbackData;// Structure used to constraint window size in custom ways when using custom ImGuiSizeConstraintCallback (rare/advanced use)
structImGuiListClipper;// Helper to manually clip large list of items
structImGuiListClipper;// Helper to manually clip large list of items
structImGuiPayload;// User data payload for drag and drop operations
structImGuiContext;// ImGui context (opaque)
structImGuiContext;// ImGui context (opaque)
// Typedefs and Enumerations (declared as int for compatibility and to not pollute the top of this file)
// Typedefs and Enumerations (declared as int for compatibility and to not pollute the top of this file)
@ -77,6 +78,7 @@ typedef int ImGuiKey; // enum: a key identifier (ImGui-side enum)
typedefintImGuiMouseCursor;// enum: a mouse cursor identifier // enum ImGuiMouseCursor_
typedefintImGuiMouseCursor;// enum: a mouse cursor identifier // enum ImGuiMouseCursor_
typedefintImGuiCond;// enum: a condition for Set*() // enum ImGuiCond_
typedefintImGuiCond;// enum: a condition for Set*() // enum ImGuiCond_
typedefintImGuiColorEditFlags;// flags: color edit flags for Color*() // enum ImGuiColorEditFlags_
typedefintImGuiColorEditFlags;// flags: color edit flags for Color*() // enum ImGuiColorEditFlags_
typedefintImGuiDragDropFlags;// flags: for *DragDrop*() // enum ImGuiDragDropFlags_
typedefintImGuiWindowFlags;// flags: window flags for Begin*() // enum ImGuiWindowFlags_
typedefintImGuiWindowFlags;// flags: window flags for Begin*() // enum ImGuiWindowFlags_
typedefintImGuiColumnsFlags;// flags: for *Columns*() // enum ImGuiColumnsFlags_
typedefintImGuiColumnsFlags;// flags: for *Columns*() // enum ImGuiColumnsFlags_
typedefintImGuiInputTextFlags;// flags: for InputText*() // enum ImGuiInputTextFlags_
typedefintImGuiInputTextFlags;// flags: for InputText*() // enum ImGuiInputTextFlags_
@ -410,6 +412,14 @@ namespace ImGui
IMGUI_APIvoidLogButtons();// helper to display buttons for logging to tty/file/clipboard
IMGUI_APIvoidLogButtons();// helper to display buttons for logging to tty/file/clipboard
IMGUI_APIvoidLogText(constchar*fmt,...)IM_FMTARGS(1);// pass text data straight to log (without being displayed)
IMGUI_APIvoidLogText(constchar*fmt,...)IM_FMTARGS(1);// pass text data straight to log (without being displayed)
// Drag and Drop
IMGUI_APIboolBeginDragDropSource(ImGuiDragDropFlagsflags=0,intmouse_button=0);// Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource()
IMGUI_APIboolSetDragDropPayload(constchar*type,constvoid*data,size_tdata_size,ImGuiCondcond=0);// Type is a user defined string of maximum 8 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui.
IMGUI_APIvoidEndDragDropSource();
IMGUI_APIboolBeginDragDropTarget();// Call after submitting an item that may receive an item. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget()
IMGUI_APIconstImGuiPayload*AcceptDragDropPayload(constchar*type,ImGuiDragDropFlagsflags=0);// Accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released.
// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
enumImGuiDragDropFlags_
{
// BeginDragDropSource() flags
ImGuiDragDropFlags_SourceNoAutoTooltip=1<<0,
ImGuiDragDropFlags_SourceNoDisableHover=1<<1,// By default, when dragging we clear data so that IsItemHovered() will return true, to avoid subsequent user code submitting tooltips.
// BeginDragDropTarget() flags
ImGuiDragDropFlags_AcceptBeforeDelivery=1<<10,// AcceptDragDropPayload() returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.
ImGuiDragDropFlags_AcceptNoDrawDefaultRect=1<<11,// Do not draw the default highlight rectangle when hovering over target.
ImGuiDragDropFlags_AcceptPeekOnly=ImGuiDragDropFlags_AcceptBeforeDelivery|ImGuiDragDropFlags_AcceptNoDrawDefaultRect// For peeking ahead and inspecting the payload before delivery.
};
// User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array
// User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array
structImGuiPayload;// User data payload for drag and drop operations
typedefintImGuiLayoutType;// enum: horizontal or vertical // enum ImGuiLayoutType_
typedefintImGuiLayoutType;// enum: horizontal or vertical // enum ImGuiLayoutType_
typedefintImGuiButtonFlags;// flags: for ButtonEx(), ButtonBehavior() // enum ImGuiButtonFlags_
typedefintImGuiButtonFlags;// flags: for ButtonEx(), ButtonBehavior() // enum ImGuiButtonFlags_
typedefintImGuiDragDropFlags;// flags: for *DragDrop*() // enum ImGuiDragDropFlags_
typedefintImGuiItemFlags;// flags: for PushItemFlag() // enum ImGuiItemFlags_
typedefintImGuiItemFlags;// flags: for PushItemFlag() // enum ImGuiItemFlags_
typedefintImGuiSeparatorFlags;// flags: for Separator() - internal // enum ImGuiSeparatorFlags_
typedefintImGuiSeparatorFlags;// flags: for Separator() - internal // enum ImGuiSeparatorFlags_
typedefintImGuiSliderFlags;// flags: for SliderBehavior() // enum ImGuiSliderFlags_
typedefintImGuiSliderFlags;// flags: for SliderBehavior() // enum ImGuiSliderFlags_
@ -217,18 +215,6 @@ enum ImGuiSeparatorFlags_
ImGuiSeparatorFlags_Vertical=1<<1
ImGuiSeparatorFlags_Vertical=1<<1
};
};
// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
enumImGuiDragDropFlags_
{
// BeginDragDropSource() flags
ImGuiDragDropFlags_SourceNoAutoTooltip=1<<0,
ImGuiDragDropFlags_SourceNoDisableHover=1<<1,// By default, when dragging we clear data so that IsItemHovered() will return true, to avoid subsequent user code submitting tooltips.
// BeginDragDropTarget() flags
ImGuiDragDropFlags_AcceptBeforeDelivery=1<<10,// AcceptDragDropPayload() returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.
ImGuiDragDropFlags_AcceptNoDrawDefaultRect=1<<11,// Do not draw the default highlight rectangle when hovering over target.
ImGuiDragDropFlags_AcceptPeekOnly=ImGuiDragDropFlags_AcceptBeforeDelivery|ImGuiDragDropFlags_AcceptNoDrawDefaultRect// For peeking ahead and inspecting the payload before delivery.
};
// FIXME: this is in development, not exposed/functional as a generic feature yet.
// FIXME: this is in development, not exposed/functional as a generic feature yet.
IMGUI_APIvoidVerticalSeparator();// Vertical separator, for menu bars (use current line height). not exposed because it is misleading what it doesn't have an effect on regular layout.
IMGUI_APIvoidVerticalSeparator();// Vertical separator, for menu bars (use current line height). not exposed because it is misleading what it doesn't have an effect on regular layout.
// FIXME-WIP: New Drag and Drop API
IMGUI_APIboolBeginDragDropSource(ImGuiDragDropFlagsflags=0,intmouse_button=0);// Call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource()
IMGUI_APIboolSetDragDropPayload(constchar*type,constvoid*data,size_tdata_size,ImGuiCondcond=0);// Type is a user defined string of maximum 8 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui.
IMGUI_APIvoidEndDragDropSource();
IMGUI_APIboolBeginDragDropTarget();// Call after submitting an item that may receive an item. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget()
IMGUI_APIconstImGuiPayload*AcceptDragDropPayload(constchar*type,ImGuiDragDropFlagsflags=0);// Accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released.
IMGUI_APIvoidEndDragDropTarget();
// FIXME-WIP: New Columns API
// FIXME-WIP: New Columns API
IMGUI_APIvoidBeginColumns(constchar*id,intcount,ImGuiColumnsFlagsflags=0);// setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().
IMGUI_APIvoidBeginColumns(constchar*id,intcount,ImGuiColumnsFlagsflags=0);// setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns().