From e2c14f1b41381f713b0502c7475eeb7b75c1b62e Mon Sep 17 00:00:00 2001 From: Victor Bombi Date: Fri, 28 Feb 2020 23:14:03 +0100 Subject: [PATCH] activate cimgui_internal.h generation --- cimgui.h | 8 +- cimgui_internal.h | 837 +++++++++++++++++++++++++++++ generator/cpp2ffi.lua | 24 +- generator/generator.lua | 4 +- generator/output/cimgui.h | 8 +- generator/output/cimgui_internal.h | 837 +++++++++++++++++++++++++++++ 6 files changed, 1706 insertions(+), 12 deletions(-) create mode 100644 cimgui_internal.h create mode 100644 generator/output/cimgui_internal.h diff --git a/cimgui.h b/cimgui.h index 8937515..c32d5d6 100644 --- a/cimgui.h +++ b/cimgui.h @@ -868,13 +868,13 @@ struct ImFont float Ascent, Descent; int MetricsTotalSurface; }; - struct ImGuiTextRange - { +struct ImGuiTextRange +{ const char* b; const char* e; }; - struct ImGuiStoragePair - { +struct ImGuiStoragePair +{ ImGuiID key; union { int val_i; float val_f; void* val_p; }; }; diff --git a/cimgui_internal.h b/cimgui_internal.h new file mode 100644 index 0000000..eb7841c --- /dev/null +++ b/cimgui_internal.h @@ -0,0 +1,837 @@ +//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui +//based on imgui.h file version "1.75" from Dear ImGui https://github.com/ocornut/imgui +#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS +typedef struct ImGuiPtrOrIndex ImGuiPtrOrIndex; +typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; +typedef struct ImVec2ih ImVec2ih; +typedef struct ImVec1 ImVec1; +typedef struct ImGuiWindowSettings ImGuiWindowSettings; +typedef struct ImGuiWindowTempData ImGuiWindowTempData; +typedef struct ImGuiWindow ImGuiWindow; +typedef struct ImGuiTabItem ImGuiTabItem; +typedef struct ImGuiTabBar ImGuiTabBar; +typedef struct ImGuiStyleMod ImGuiStyleMod; +typedef struct ImGuiSettingsHandler ImGuiSettingsHandler; +typedef struct ImGuiPopupData ImGuiPopupData; +typedef struct ImGuiNextItemData ImGuiNextItemData; +typedef struct ImGuiNextWindowData ImGuiNextWindowData; +typedef struct ImGuiNavMoveResult ImGuiNavMoveResult; +typedef struct ImGuiMenuColumns ImGuiMenuColumns; +typedef struct ImGuiItemHoveredDataBackup ImGuiItemHoveredDataBackup; +typedef struct ImGuiInputTextState ImGuiInputTextState; +typedef struct ImGuiGroupData ImGuiGroupData; +typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo; +typedef struct ImGuiContext ImGuiContext; +typedef struct ImGuiColumns ImGuiColumns; +typedef struct ImGuiColumnData ImGuiColumnData; +typedef struct ImGuiColorMod ImGuiColorMod; +typedef struct ImDrawListSharedData ImDrawListSharedData; +typedef struct ImDrawDataBuilder ImDrawDataBuilder; +typedef struct ImRect ImRect; +typedef struct ImBoolVector ImBoolVector; + +struct ImBoolVector; +struct ImRect; +struct ImDrawDataBuilder; +struct ImDrawListSharedData; +struct ImGuiColorMod; +struct ImGuiColumnData; +struct ImGuiColumns; +struct ImGuiContext; +struct ImGuiDataTypeInfo; +struct ImGuiGroupData; +struct ImGuiInputTextState; +struct ImGuiItemHoveredDataBackup; +struct ImGuiMenuColumns; +struct ImGuiNavMoveResult; +struct ImGuiNextWindowData; +struct ImGuiNextItemData; +struct ImGuiPopupData; +struct ImGuiSettingsHandler; +struct ImGuiStyleMod; +struct ImGuiTabBar; +struct ImGuiTabItem; +struct ImGuiWindow; +struct ImGuiWindowTempData; +struct ImGuiWindowSettings; +typedef int ImGuiLayoutType; +typedef int ImGuiButtonFlags; +typedef int ImGuiColumnsFlags; +typedef int ImGuiDragFlags; +typedef int ImGuiItemFlags; +typedef int ImGuiItemStatusFlags; +typedef int ImGuiNavHighlightFlags; +typedef int ImGuiNavDirSourceFlags; +typedef int ImGuiNavMoveFlags; +typedef int ImGuiNextItemDataFlags; +typedef int ImGuiNextWindowDataFlags; +typedef int ImGuiSeparatorFlags; +typedef int ImGuiSliderFlags; +typedef int ImGuiTextFlags; +typedef int ImGuiTooltipFlags; +extern ImGuiContext* GImGui; +typedef FILE* ImFileHandle; +typedef int ImPoolIdx;typedef struct ImVector_unsigned_char {int Size;int Capacity;unsigned char* Data;} ImVector_unsigned_char; +typedef struct ImVector_ImGuiSettingsHandler {int Size;int Capacity;ImGuiSettingsHandler* Data;} ImVector_ImGuiSettingsHandler; +typedef struct ImVector_ImGuiStyleMod {int Size;int Capacity;ImGuiStyleMod* Data;} ImVector_ImGuiStyleMod; +typedef struct ImVector_ImGuiPopupData {int Size;int Capacity;ImGuiPopupData* Data;} ImVector_ImGuiPopupData; +typedef struct ImVector_ImGuiItemFlags {int Size;int Capacity;ImGuiItemFlags* Data;} ImVector_ImGuiItemFlags; +typedef struct ImVector_ImGuiWindowPtr {int Size;int Capacity;ImGuiWindow** Data;} ImVector_ImGuiWindowPtr; +typedef struct ImVector_ImGuiTabItem {int Size;int Capacity;ImGuiTabItem* Data;} ImVector_ImGuiTabItem; +typedef struct ImVector_ImGuiShrinkWidthItem {int Size;int Capacity;ImGuiShrinkWidthItem* Data;} ImVector_ImGuiShrinkWidthItem; +typedef struct ImVector_ImGuiColumns {int Size;int Capacity;ImGuiColumns* Data;} ImVector_ImGuiColumns; +typedef struct ImVector_ImGuiID {int Size;int Capacity;ImGuiID* Data;} ImVector_ImGuiID; +typedef struct ImVector_ImGuiGroupData {int Size;int Capacity;ImGuiGroupData* Data;} ImVector_ImGuiGroupData; +typedef struct ImVector_ImGuiColumnData {int Size;int Capacity;ImGuiColumnData* Data;} ImVector_ImGuiColumnData; +typedef struct ImVector_int {int Size;int Capacity;int* Data;} ImVector_int; +typedef struct ImVector_ImGuiPtrOrIndex {int Size;int Capacity;ImGuiPtrOrIndex* Data;} ImVector_ImGuiPtrOrIndex; +typedef struct ImVector_ImDrawListPtr {int Size;int Capacity;ImDrawList** Data;} ImVector_ImDrawListPtr; +typedef struct ImVector_ImGuiColorMod {int Size;int Capacity;ImGuiColorMod* Data;} ImVector_ImGuiColorMod; +typedef struct ImVector_ImGuiWindowSettings {int Size;int Capacity;ImGuiWindowSettings* Data;} ImVector_ImGuiWindowSettings; +typedef struct ImChunkStream_ImGuiWindowSettings {ImVector_ImGuiWindowSettings Buf;} ImChunkStream_ImGuiWindowSettings; +typedef struct ImVector_ImGuiTabBar {int Size;int Capacity;ImGuiTabBar* Data;} ImVector_ImGuiTabBar; +typedef struct ImPool_ImGuiTabBar {ImVector_ImGuiTabBar Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;} ImPool_ImGuiTabBar; + +typedef struct +{ + int where; + int insert_length; + int delete_length; + int char_storage; +} StbUndoRecord; +typedef struct +{ + StbUndoRecord undo_rec [99]; + ImWchar undo_char[999]; + short undo_point, redo_point; + int undo_char_point, redo_char_point; +} StbUndoState; +typedef struct +{ + int cursor; + int select_start; + int select_end; + unsigned char insert_mode; + unsigned char cursor_at_end_of_line; + unsigned char initialized; + unsigned char has_preferred_x; + unsigned char single_line; + unsigned char padding1, padding2, padding3; + float preferred_x; + StbUndoState undostate; +} STB_TexteditState; +typedef struct +{ + float x0,x1; + float baseline_y_delta; + float ymin,ymax; + int num_chars; +} StbTexteditRow; +struct ImBoolVector +{ + ImVector_int Storage; +}; +typedef enum { + ImGuiButtonFlags_None = 0, + ImGuiButtonFlags_Repeat = 1 << 0, + ImGuiButtonFlags_PressedOnClick = 1 << 1, + ImGuiButtonFlags_PressedOnClickRelease = 1 << 2, + ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 1 << 3, + ImGuiButtonFlags_PressedOnRelease = 1 << 4, + ImGuiButtonFlags_PressedOnDoubleClick = 1 << 5, + ImGuiButtonFlags_PressedOnDragDropHold = 1 << 6, + ImGuiButtonFlags_FlattenChildren = 1 << 7, + ImGuiButtonFlags_AllowItemOverlap = 1 << 8, + ImGuiButtonFlags_DontClosePopups = 1 << 9, + ImGuiButtonFlags_Disabled = 1 << 10, + ImGuiButtonFlags_AlignTextBaseLine = 1 << 11, + ImGuiButtonFlags_NoKeyModifiers = 1 << 12, + ImGuiButtonFlags_NoHoldingActiveId = 1 << 13, + ImGuiButtonFlags_NoNavFocus = 1 << 14, + ImGuiButtonFlags_NoHoveredOnNav = 1 << 15, + ImGuiButtonFlags_MouseButtonLeft = 1 << 16, + ImGuiButtonFlags_MouseButtonRight = 1 << 17, + ImGuiButtonFlags_MouseButtonMiddle = 1 << 18, + ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle, + ImGuiButtonFlags_MouseButtonShift_ = 16, + ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft, + ImGuiButtonFlags_PressedOnMask_ = ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold, + ImGuiButtonFlags_PressedOnDefault_ = ImGuiButtonFlags_PressedOnClickRelease +}ImGuiButtonFlags_; +typedef enum { + ImGuiSliderFlags_None = 0, + ImGuiSliderFlags_Vertical = 1 << 0 +}ImGuiSliderFlags_; +typedef enum { + ImGuiDragFlags_None = 0, + ImGuiDragFlags_Vertical = 1 << 0 +}ImGuiDragFlags_; +typedef enum { + ImGuiColumnsFlags_None = 0, + ImGuiColumnsFlags_NoBorder = 1 << 0, + ImGuiColumnsFlags_NoResize = 1 << 1, + ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, + ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, + ImGuiColumnsFlags_GrowParentContentsSize= 1 << 4 +}ImGuiColumnsFlags_; +typedef enum { + ImGuiSelectableFlags_NoHoldingActiveID = 1 << 20, + ImGuiSelectableFlags_PressedOnClick = 1 << 21, + ImGuiSelectableFlags_PressedOnRelease = 1 << 22, + ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 23, + ImGuiSelectableFlags_DrawHoveredWhenHeld= 1 << 24, + ImGuiSelectableFlags_SetNavIdOnHover = 1 << 25 +}ImGuiSelectableFlagsPrivate_; +typedef enum { + ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 << 20 +}ImGuiTreeNodeFlagsPrivate_; +typedef enum { + ImGuiSeparatorFlags_None = 0, + ImGuiSeparatorFlags_Horizontal = 1 << 0, + ImGuiSeparatorFlags_Vertical = 1 << 1, + ImGuiSeparatorFlags_SpanAllColumns = 1 << 2 +}ImGuiSeparatorFlags_; +typedef enum { + ImGuiItemFlags_None = 0, + ImGuiItemFlags_NoTabStop = 1 << 0, + ImGuiItemFlags_ButtonRepeat = 1 << 1, + ImGuiItemFlags_Disabled = 1 << 2, + ImGuiItemFlags_NoNav = 1 << 3, + ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, + ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, + ImGuiItemFlags_MixedValue = 1 << 6, + ImGuiItemFlags_Default_ = 0 +}ImGuiItemFlags_; +typedef enum { + ImGuiItemStatusFlags_None = 0, + ImGuiItemStatusFlags_HoveredRect = 1 << 0, + ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, + ImGuiItemStatusFlags_Edited = 1 << 2, + ImGuiItemStatusFlags_ToggledSelection = 1 << 3, + ImGuiItemStatusFlags_ToggledOpen = 1 << 4, + ImGuiItemStatusFlags_HasDeactivated = 1 << 5, + ImGuiItemStatusFlags_Deactivated = 1 << 6 +}ImGuiItemStatusFlags_; +typedef enum { + ImGuiTextFlags_None = 0, + ImGuiTextFlags_NoWidthForLargeClippedText = 1 << 0 +}ImGuiTextFlags_; +typedef enum { + ImGuiTooltipFlags_None = 0, + ImGuiTooltipFlags_OverridePreviousTooltip = 1 << 0 +}ImGuiTooltipFlags_; +typedef enum { + ImGuiLayoutType_Horizontal = 0, + ImGuiLayoutType_Vertical = 1 +}ImGuiLayoutType_; +typedef enum { + ImGuiLogType_None = 0, + ImGuiLogType_TTY, + ImGuiLogType_File, + ImGuiLogType_Buffer, + ImGuiLogType_Clipboard +}ImGuiLogType; +typedef enum { + ImGuiAxis_None = -1, + ImGuiAxis_X = 0, + ImGuiAxis_Y = 1 +}ImGuiAxis; +typedef enum { + ImGuiPlotType_Lines, + ImGuiPlotType_Histogram +}ImGuiPlotType; +typedef enum { + ImGuiInputSource_None = 0, + ImGuiInputSource_Mouse, + ImGuiInputSource_Nav, + ImGuiInputSource_NavKeyboard, + ImGuiInputSource_NavGamepad, + ImGuiInputSource_COUNT +}ImGuiInputSource; +typedef enum { + ImGuiInputReadMode_Down, + ImGuiInputReadMode_Pressed, + ImGuiInputReadMode_Released, + ImGuiInputReadMode_Repeat, + ImGuiInputReadMode_RepeatSlow, + ImGuiInputReadMode_RepeatFast +}ImGuiInputReadMode; +typedef enum { + ImGuiNavHighlightFlags_None = 0, + ImGuiNavHighlightFlags_TypeDefault = 1 << 0, + ImGuiNavHighlightFlags_TypeThin = 1 << 1, + ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, + ImGuiNavHighlightFlags_NoRounding = 1 << 3 +}ImGuiNavHighlightFlags_; +typedef enum { + ImGuiNavDirSourceFlags_None = 0, + ImGuiNavDirSourceFlags_Keyboard = 1 << 0, + ImGuiNavDirSourceFlags_PadDPad = 1 << 1, + ImGuiNavDirSourceFlags_PadLStick = 1 << 2 +}ImGuiNavDirSourceFlags_; +typedef enum { + ImGuiNavMoveFlags_None = 0, + ImGuiNavMoveFlags_LoopX = 1 << 0, + ImGuiNavMoveFlags_LoopY = 1 << 1, + ImGuiNavMoveFlags_WrapX = 1 << 2, + ImGuiNavMoveFlags_WrapY = 1 << 3, + ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, + ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, + ImGuiNavMoveFlags_ScrollToEdge = 1 << 6 +}ImGuiNavMoveFlags_; +typedef enum { + ImGuiNavForward_None, + ImGuiNavForward_ForwardQueued, + ImGuiNavForward_ForwardActive +}ImGuiNavForward; +typedef enum { + ImGuiNavLayer_Main = 0, + ImGuiNavLayer_Menu = 1, + ImGuiNavLayer_COUNT +}ImGuiNavLayer; +typedef enum { + ImGuiPopupPositionPolicy_Default, + ImGuiPopupPositionPolicy_ComboBox +}ImGuiPopupPositionPolicy; +struct ImVec1 +{ + float x; +}; +struct ImVec2ih +{ + short x, y; +}; +struct ImRect +{ + ImVec2 Min; + ImVec2 Max; +}; +struct ImGuiDataTypeInfo +{ + size_t Size; + const char* PrintFmt; + const char* ScanFmt; +}; +struct ImGuiColorMod +{ + ImGuiCol Col; + ImVec4 BackupValue; +}; +struct ImGuiStyleMod +{ + ImGuiStyleVar VarIdx; + union { int BackupInt[2]; float BackupFloat[2]; }; +}; +struct ImGuiGroupData +{ + ImVec2 BackupCursorPos; + ImVec2 BackupCursorMaxPos; + ImVec1 BackupIndent; + ImVec1 BackupGroupOffset; + ImVec2 BackupCurrLineSize; + float BackupCurrLineTextBaseOffset; + ImGuiID BackupActiveIdIsAlive; + bool BackupActiveIdPreviousFrameIsAlive; + bool EmitItem; +}; +struct ImGuiMenuColumns +{ + float Spacing; + float Width, NextWidth; + float Pos[3], NextWidths[3]; +}; +struct ImGuiInputTextState +{ + ImGuiID ID; + int CurLenW, CurLenA; + ImVector_ImWchar TextW; + ImVector_char TextA; + ImVector_char InitialTextA; + bool TextAIsValid; + int BufCapacityA; + float ScrollX; + STB_TexteditState Stb; + float CursorAnim; + bool CursorFollow; + bool SelectedAllMouseLock; + ImGuiInputTextFlags UserFlags; + ImGuiInputTextCallback UserCallback; + void* UserCallbackData; +}; +struct ImGuiWindowSettings +{ + ImGuiID ID; + ImVec2ih Pos; + ImVec2ih Size; + bool Collapsed; +}; +struct ImGuiSettingsHandler +{ + const char* TypeName; + ImGuiID TypeHash; + void* (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name); + void (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); + void (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf); + void* UserData; +}; +struct ImGuiPopupData +{ + ImGuiID PopupId; + ImGuiWindow* Window; + ImGuiWindow* SourceWindow; + int OpenFrameCount; + ImGuiID OpenParentId; + ImVec2 OpenPopupPos; + ImVec2 OpenMousePos; +}; +struct ImGuiColumnData +{ + float OffsetNorm; + float OffsetNormBeforeResize; + ImGuiColumnsFlags Flags; + ImRect ClipRect; +}; +struct ImGuiColumns +{ + ImGuiID ID; + ImGuiColumnsFlags Flags; + bool IsFirstFrame; + bool IsBeingResized; + int Current; + int Count; + float OffMinX, OffMaxX; + float LineMinY, LineMaxY; + float HostCursorPosY; + float HostCursorMaxPosX; + ImRect HostClipRect; + ImRect HostWorkRect; + ImVector_ImGuiColumnData Columns; + ImDrawListSplitter Splitter; +}; +struct ImDrawListSharedData +{ + ImVec2 TexUvWhitePixel; + ImFont* Font; + float FontSize; + float CurveTessellationTol; + float CircleSegmentMaxError; + ImVec4 ClipRectFullscreen; + ImDrawListFlags InitialFlags; + ImVec2 CircleVtx12[12]; + ImU8 CircleSegmentCounts[64]; +}; +struct ImDrawDataBuilder +{ + ImVector_ImDrawListPtr Layers[2]; +}; +struct ImGuiNavMoveResult +{ + ImGuiWindow* Window; + ImGuiID ID; + ImGuiID FocusScopeId; + float DistBox; + float DistCenter; + float DistAxial; + ImRect RectRel; +}; +typedef enum { + ImGuiNextWindowDataFlags_None = 0, + ImGuiNextWindowDataFlags_HasPos = 1 << 0, + ImGuiNextWindowDataFlags_HasSize = 1 << 1, + ImGuiNextWindowDataFlags_HasContentSize = 1 << 2, + ImGuiNextWindowDataFlags_HasCollapsed = 1 << 3, + ImGuiNextWindowDataFlags_HasSizeConstraint = 1 << 4, + ImGuiNextWindowDataFlags_HasFocus = 1 << 5, + ImGuiNextWindowDataFlags_HasBgAlpha = 1 << 6 +}ImGuiNextWindowDataFlags_; +struct ImGuiNextWindowData +{ + ImGuiNextWindowDataFlags Flags; + ImGuiCond PosCond; + ImGuiCond SizeCond; + ImGuiCond CollapsedCond; + ImVec2 PosVal; + ImVec2 PosPivotVal; + ImVec2 SizeVal; + ImVec2 ContentSizeVal; + bool CollapsedVal; + ImRect SizeConstraintRect; + ImGuiSizeCallback SizeCallback; + void* SizeCallbackUserData; + float BgAlphaVal; + ImVec2 MenuBarOffsetMinVal; +}; +typedef enum { + ImGuiNextItemDataFlags_None = 0, + ImGuiNextItemDataFlags_HasWidth = 1 << 0, + ImGuiNextItemDataFlags_HasOpen = 1 << 1 +}ImGuiNextItemDataFlags_; +struct ImGuiNextItemData +{ + ImGuiNextItemDataFlags Flags; + float Width; + ImGuiID FocusScopeId; + ImGuiCond OpenCond; + bool OpenVal; +}; +struct ImGuiShrinkWidthItem +{ + int Index; + float Width; +}; +struct ImGuiPtrOrIndex +{ + void* Ptr; + int Index; +}; +struct ImGuiContext +{ + bool Initialized; + bool FontAtlasOwnedByContext; + ImGuiIO IO; + ImGuiStyle Style; + ImFont* Font; + float FontSize; + float FontBaseSize; + ImDrawListSharedData DrawListSharedData; + double Time; + int FrameCount; + int FrameCountEnded; + int FrameCountRendered; + bool WithinFrameScope; + bool WithinFrameScopeWithImplicitWindow; + bool WithinEndChild; + ImVector_ImGuiWindowPtr Windows; + ImVector_ImGuiWindowPtr WindowsFocusOrder; + ImVector_ImGuiWindowPtr WindowsTempSortBuffer; + ImVector_ImGuiWindowPtr CurrentWindowStack; + ImGuiStorage WindowsById; + int WindowsActiveCount; + ImGuiWindow* CurrentWindow; + ImGuiWindow* HoveredWindow; + ImGuiWindow* HoveredRootWindow; + ImGuiWindow* MovingWindow; + ImGuiWindow* WheelingWindow; + ImVec2 WheelingWindowRefMousePos; + float WheelingWindowTimer; + ImGuiID HoveredId; + bool HoveredIdAllowOverlap; + ImGuiID HoveredIdPreviousFrame; + float HoveredIdTimer; + float HoveredIdNotActiveTimer; + ImGuiID ActiveId; + ImGuiID ActiveIdIsAlive; + float ActiveIdTimer; + bool ActiveIdIsJustActivated; + bool ActiveIdAllowOverlap; + bool ActiveIdHasBeenPressedBefore; + bool ActiveIdHasBeenEditedBefore; + bool ActiveIdHasBeenEditedThisFrame; + ImU32 ActiveIdUsingNavDirMask; + ImU32 ActiveIdUsingNavInputMask; + ImU64 ActiveIdUsingKeyInputMask; + ImVec2 ActiveIdClickOffset; + ImGuiWindow* ActiveIdWindow; + ImGuiInputSource ActiveIdSource; + int ActiveIdMouseButton; + ImGuiID ActiveIdPreviousFrame; + bool ActiveIdPreviousFrameIsAlive; + bool ActiveIdPreviousFrameHasBeenEditedBefore; + ImGuiWindow* ActiveIdPreviousFrameWindow; + ImGuiID LastActiveId; + float LastActiveIdTimer; + ImGuiNextWindowData NextWindowData; + ImGuiNextItemData NextItemData; + ImVector_ImGuiColorMod ColorModifiers; + ImVector_ImGuiStyleMod StyleModifiers; + ImVector_ImFontPtr FontStack; + ImVector_ImGuiPopupData OpenPopupStack; + ImVector_ImGuiPopupData BeginPopupStack; + ImGuiWindow* NavWindow; + ImGuiID NavId; + ImGuiID NavFocusScopeId; + ImGuiID NavActivateId; + ImGuiID NavActivateDownId; + ImGuiID NavActivatePressedId; + ImGuiID NavInputId; + ImGuiID NavJustTabbedId; + ImGuiID NavJustMovedToId; + ImGuiID NavJustMovedToFocusScopeId; + ImGuiID NavNextActivateId; + ImGuiInputSource NavInputSource; + ImRect NavScoringRectScreen; + int NavScoringCount; + ImGuiNavLayer NavLayer; + int NavIdTabCounter; + bool NavIdIsAlive; + bool NavMousePosDirty; + bool NavDisableHighlight; + bool NavDisableMouseHover; + bool NavAnyRequest; + bool NavInitRequest; + bool NavInitRequestFromMove; + ImGuiID NavInitResultId; + ImRect NavInitResultRectRel; + bool NavMoveFromClampedRefRect; + bool NavMoveRequest; + ImGuiNavMoveFlags NavMoveRequestFlags; + ImGuiNavForward NavMoveRequestForward; + ImGuiDir NavMoveDir, NavMoveDirLast; + ImGuiDir NavMoveClipDir; + ImGuiNavMoveResult NavMoveResultLocal; + ImGuiNavMoveResult NavMoveResultLocalVisibleSet; + ImGuiNavMoveResult NavMoveResultOther; + ImGuiWindow* NavWindowingTarget; + ImGuiWindow* NavWindowingTargetAnim; + ImGuiWindow* NavWindowingList; + float NavWindowingTimer; + float NavWindowingHighlightAlpha; + bool NavWindowingToggleLayer; + ImGuiWindow* FocusRequestCurrWindow; + ImGuiWindow* FocusRequestNextWindow; + int FocusRequestCurrCounterRegular; + int FocusRequestCurrCounterTabStop; + int FocusRequestNextCounterRegular; + int FocusRequestNextCounterTabStop; + bool FocusTabPressed; + ImDrawData DrawData; + ImDrawDataBuilder DrawDataBuilder; + float DimBgRatio; + ImDrawList BackgroundDrawList; + ImDrawList ForegroundDrawList; + ImGuiMouseCursor MouseCursor; + bool DragDropActive; + bool DragDropWithinSourceOrTarget; + ImGuiDragDropFlags DragDropSourceFlags; + int DragDropSourceFrameCount; + int DragDropMouseButton; + ImGuiPayload DragDropPayload; + ImRect DragDropTargetRect; + ImGuiID DragDropTargetId; + ImGuiDragDropFlags DragDropAcceptFlags; + float DragDropAcceptIdCurrRectSurface; + ImGuiID DragDropAcceptIdCurr; + ImGuiID DragDropAcceptIdPrev; + int DragDropAcceptFrameCount; + ImVector_unsigned_char DragDropPayloadBufHeap; + unsigned char DragDropPayloadBufLocal[16]; + ImGuiTabBar* CurrentTabBar; + ImPool_ImGuiTabBar TabBars; + ImVector_ImGuiPtrOrIndex CurrentTabBarStack; + ImVector_ImGuiShrinkWidthItem ShrinkWidthBuffer; + ImVec2 LastValidMousePos; + ImGuiInputTextState InputTextState; + ImFont InputTextPasswordFont; + ImGuiID TempInputTextId; + ImGuiColorEditFlags ColorEditOptions; + float ColorEditLastHue; + float ColorEditLastSat; + float ColorEditLastColor[3]; + ImVec4 ColorPickerRef; + bool DragCurrentAccumDirty; + float DragCurrentAccum; + float DragSpeedDefaultRatio; + float ScrollbarClickDeltaToGrabCenter; + int TooltipOverrideCount; + ImVector_char PrivateClipboard; + ImVec2 PlatformImePos; + ImVec2 PlatformImeLastPos; + bool SettingsLoaded; + float SettingsDirtyTimer; + ImGuiTextBuffer SettingsIniData; + ImVector_ImGuiSettingsHandler SettingsHandlers; + ImChunkStream_ImGuiWindowSettings SettingsWindows; + bool LogEnabled; + ImGuiLogType LogType; + ImFileHandle LogFile; + ImGuiTextBuffer LogBuffer; + float LogLinePosY; + bool LogLineFirstItem; + int LogDepthRef; + int LogDepthToExpand; + int LogDepthToExpandDefault; + bool DebugItemPickerActive; + ImGuiID DebugItemPickerBreakId; + float FramerateSecPerFrame[120]; + int FramerateSecPerFrameIdx; + float FramerateSecPerFrameAccum; + int WantCaptureMouseNextFrame; + int WantCaptureKeyboardNextFrame; + int WantTextInputNextFrame; + char TempBuffer[1024*3+1]; +}; +struct ImGuiWindowTempData +{ + ImVec2 CursorPos; + ImVec2 CursorPosPrevLine; + ImVec2 CursorStartPos; + ImVec2 CursorMaxPos; + ImVec2 CurrLineSize; + ImVec2 PrevLineSize; + float CurrLineTextBaseOffset; + float PrevLineTextBaseOffset; + ImVec1 Indent; + ImVec1 ColumnsOffset; + ImVec1 GroupOffset; + ImGuiID LastItemId; + ImGuiItemStatusFlags LastItemStatusFlags; + ImRect LastItemRect; + ImRect LastItemDisplayRect; + ImGuiNavLayer NavLayerCurrent; + int NavLayerCurrentMask; + int NavLayerActiveMask; + int NavLayerActiveMaskNext; + ImGuiID NavFocusScopeIdCurrent; + bool NavHideHighlightOneFrame; + bool NavHasScroll; + bool MenuBarAppending; + ImVec2 MenuBarOffset; + ImGuiMenuColumns MenuColumns; + int TreeDepth; + ImU32 TreeJumpToParentOnPopMask; + ImVector_ImGuiWindowPtr ChildWindows; + ImGuiStorage* StateStorage; + ImGuiColumns* CurrentColumns; + ImGuiLayoutType LayoutType; + ImGuiLayoutType ParentLayoutType; + int FocusCounterRegular; + int FocusCounterTabStop; + ImGuiItemFlags ItemFlags; + float ItemWidth; + float TextWrapPos; + ImVector_ImGuiItemFlags ItemFlagsStack; + ImVector_float ItemWidthStack; + ImVector_float TextWrapPosStack; + ImVector_ImGuiGroupData GroupStack; + short StackSizesBackup[6]; +}; +struct ImGuiWindow +{ + char* Name; + ImGuiID ID; + ImGuiWindowFlags Flags; + ImVec2 Pos; + ImVec2 Size; + ImVec2 SizeFull; + ImVec2 ContentSize; + ImVec2 ContentSizeExplicit; + ImVec2 WindowPadding; + float WindowRounding; + float WindowBorderSize; + int NameBufLen; + ImGuiID MoveId; + ImGuiID ChildId; + ImVec2 Scroll; + ImVec2 ScrollMax; + ImVec2 ScrollTarget; + ImVec2 ScrollTargetCenterRatio; + ImVec2 ScrollbarSizes; + bool ScrollbarX, ScrollbarY; + bool Active; + bool WasActive; + bool WriteAccessed; + bool Collapsed; + bool WantCollapseToggle; + bool SkipItems; + bool Appearing; + bool Hidden; + bool IsFallbackWindow; + bool HasCloseButton; + signed char ResizeBorderHeld; + short BeginCount; + short BeginOrderWithinParent; + short BeginOrderWithinContext; + ImGuiID PopupId; + ImS8 AutoFitFramesX, AutoFitFramesY; + ImS8 AutoFitChildAxises; + bool AutoFitOnlyGrows; + ImGuiDir AutoPosLastDirection; + int HiddenFramesCanSkipItems; + int HiddenFramesCannotSkipItems; + ImGuiCond SetWindowPosAllowFlags; + ImGuiCond SetWindowSizeAllowFlags; + ImGuiCond SetWindowCollapsedAllowFlags; + ImVec2 SetWindowPosVal; + ImVec2 SetWindowPosPivot; + ImVector_ImGuiID IDStack; + ImGuiWindowTempData DC; + ImRect OuterRectClipped; + ImRect InnerRect; + ImRect InnerClipRect; + ImRect WorkRect; + ImRect ClipRect; + ImRect ContentRegionRect; + int LastFrameActive; + float LastTimeActive; + float ItemWidthDefault; + ImGuiStorage StateStorage; + ImVector_ImGuiColumns ColumnsStorage; + float FontWindowScale; + int SettingsOffset; + ImDrawList* DrawList; + ImDrawList DrawListInst; + ImGuiWindow* ParentWindow; + ImGuiWindow* RootWindow; + ImGuiWindow* RootWindowForTitleBarHighlight; + ImGuiWindow* RootWindowForNav; + ImGuiWindow* NavLastChildNavWindow; + ImGuiID NavLastIds[ImGuiNavLayer_COUNT]; + ImRect NavRectRel[ImGuiNavLayer_COUNT]; + bool MemoryCompacted; + int MemoryDrawListIdxCapacity; + int MemoryDrawListVtxCapacity; +}; +struct ImGuiItemHoveredDataBackup +{ + ImGuiID LastItemId; + ImGuiItemStatusFlags LastItemStatusFlags; + ImRect LastItemRect; + ImRect LastItemDisplayRect; +}; +typedef enum { + ImGuiTabBarFlags_DockNode = 1 << 20, + ImGuiTabBarFlags_IsFocused = 1 << 21, + ImGuiTabBarFlags_SaveSettings = 1 << 22 +}ImGuiTabBarFlagsPrivate_; +typedef enum { + ImGuiTabItemFlags_NoCloseButton = 1 << 20 +}ImGuiTabItemFlagsPrivate_; +struct ImGuiTabItem +{ + ImGuiID ID; + ImGuiTabItemFlags Flags; + int LastFrameVisible; + int LastFrameSelected; + int NameOffset; + float Offset; + float Width; + float ContentWidth; +}; +struct ImGuiTabBar +{ + ImVector_ImGuiTabItem Tabs; + ImGuiID ID; + ImGuiID SelectedTabId; + ImGuiID NextSelectedTabId; + ImGuiID VisibleTabId; + int CurrFrameVisible; + int PrevFrameVisible; + ImRect BarRect; + float LastTabContentHeight; + float OffsetMax; + float OffsetMaxIdeal; + float OffsetNextTab; + float ScrollingAnim; + float ScrollingTarget; + float ScrollingTargetDistToVisibility; + float ScrollingSpeed; + ImGuiTabBarFlags Flags; + ImGuiID ReorderRequestTabId; + ImS8 ReorderRequestDir; + bool WantLayout; + bool VisibleTabWasSubmitted; + short LastTabItemIdx; + ImVec2 FramePadding; + ImGuiTextBuffer TabsNames; +}; +#endif diff --git a/generator/cpp2ffi.lua b/generator/cpp2ffi.lua index a78fea0..9fb4e93 100644 --- a/generator/cpp2ffi.lua +++ b/generator/cpp2ffi.lua @@ -432,7 +432,7 @@ local function parseFunction(self,stname,lineorig,namespace) --only post error if not manual local cname = self.getCname(stname,funcname) --cimguiname if not self.manuals[cname] then - print("reference to no const arg in",funcname,argscsinpars) + print("reference to no const arg in",funcname,argscsinpars,arg) end end end @@ -794,14 +794,29 @@ function M.Parser() function par:clean_struct(stru) local outtab = {} local iner = strip_end(stru:match("%b{}"):sub(2,-2)) - local stname = stru:match("struct%s*(%S+)%s*%b{}") + local inistruct = clean_spaces(stru:match("(.-)%b{}")) + --local stname = stru:match("struct%s*(%S+)%s*%b{}") + local stname, derived + if inistruct:match":" then + stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)" + derived = derived:match"(%S+)$" + else + stname = inistruct:match"struct%s(%S+)" + end + + if derived then print(stname,"derived from",derived) end + if not stname then print(stru) error"could not get stname" end --initial - table.insert(outtab,stru:match("(.-)%b{}")) + --table.insert(outtab,stru:match("(.-)%b{}")) + table.insert(outtab,"\nstruct "..stname.."\n") table.insert(outtab,"{") + if derived then + table.insert(outtab,"\n "..derived.." _"..derived..";") + end local itlist,itemsin = parseItems(iner) if #itlist == 0 then return "" end --here we avoid empty structs for j,it in ipairs(itlist) do @@ -874,6 +889,9 @@ function M.Parser() table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";") elseif it.re_name == "struct_re" then local cleanst,structname = self:clean_struct(it.item) + + --if not structname then print("NO NAME",cleanst,it.item) end + --if not void stname or templated if structname and not self.typenames[structname] then table.insert(outtab,cleanst) diff --git a/generator/generator.lua b/generator/generator.lua index cdb4b9a..5c03460 100644 --- a/generator/generator.lua +++ b/generator/generator.lua @@ -588,7 +588,7 @@ local parser1 = parseImGuiHeader([[../imgui/imgui.h]],{[[imgui]]}) parser1:do_parse() ---------- generate cimgui_internal.h ---[=[ +---[=[ local parser1i = parseImGuiHeader([[../imgui/imgui_internal.h]],{[[imgui_internal]],[[imstb_textedit]]}) parser1i:do_parse() local outpre,outpost = parser1i:gen_structs_and_enums() @@ -605,6 +605,8 @@ local cstructsstr = outpre..table.concat(outtab,"")..outpost..(extra or "") local cfuncsstr = func_header_generate(parser1i) save_data("./output/cimgui_internal.h",cimgui_header,"#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n",cstructsstr,"\n#endif\n")--,cfuncsstr) copyfile("./output/cimgui_internal.h", "../cimgui_internal.h") +--local structs_and_enums_table_i = parser1i:gen_structs_and_enums_table() +--save_data("./output/structs_and_enums_i.lua",serializeTableF(structs_and_enums_table_i)) --]=] ----------- add only ImGuiContext from imgui_internal.h to parser1 --[=[ diff --git a/generator/output/cimgui.h b/generator/output/cimgui.h index 8937515..c32d5d6 100644 --- a/generator/output/cimgui.h +++ b/generator/output/cimgui.h @@ -868,13 +868,13 @@ struct ImFont float Ascent, Descent; int MetricsTotalSurface; }; - struct ImGuiTextRange - { +struct ImGuiTextRange +{ const char* b; const char* e; }; - struct ImGuiStoragePair - { +struct ImGuiStoragePair +{ ImGuiID key; union { int val_i; float val_f; void* val_p; }; }; diff --git a/generator/output/cimgui_internal.h b/generator/output/cimgui_internal.h new file mode 100644 index 0000000..eb7841c --- /dev/null +++ b/generator/output/cimgui_internal.h @@ -0,0 +1,837 @@ +//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui +//based on imgui.h file version "1.75" from Dear ImGui https://github.com/ocornut/imgui +#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS +typedef struct ImGuiPtrOrIndex ImGuiPtrOrIndex; +typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; +typedef struct ImVec2ih ImVec2ih; +typedef struct ImVec1 ImVec1; +typedef struct ImGuiWindowSettings ImGuiWindowSettings; +typedef struct ImGuiWindowTempData ImGuiWindowTempData; +typedef struct ImGuiWindow ImGuiWindow; +typedef struct ImGuiTabItem ImGuiTabItem; +typedef struct ImGuiTabBar ImGuiTabBar; +typedef struct ImGuiStyleMod ImGuiStyleMod; +typedef struct ImGuiSettingsHandler ImGuiSettingsHandler; +typedef struct ImGuiPopupData ImGuiPopupData; +typedef struct ImGuiNextItemData ImGuiNextItemData; +typedef struct ImGuiNextWindowData ImGuiNextWindowData; +typedef struct ImGuiNavMoveResult ImGuiNavMoveResult; +typedef struct ImGuiMenuColumns ImGuiMenuColumns; +typedef struct ImGuiItemHoveredDataBackup ImGuiItemHoveredDataBackup; +typedef struct ImGuiInputTextState ImGuiInputTextState; +typedef struct ImGuiGroupData ImGuiGroupData; +typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo; +typedef struct ImGuiContext ImGuiContext; +typedef struct ImGuiColumns ImGuiColumns; +typedef struct ImGuiColumnData ImGuiColumnData; +typedef struct ImGuiColorMod ImGuiColorMod; +typedef struct ImDrawListSharedData ImDrawListSharedData; +typedef struct ImDrawDataBuilder ImDrawDataBuilder; +typedef struct ImRect ImRect; +typedef struct ImBoolVector ImBoolVector; + +struct ImBoolVector; +struct ImRect; +struct ImDrawDataBuilder; +struct ImDrawListSharedData; +struct ImGuiColorMod; +struct ImGuiColumnData; +struct ImGuiColumns; +struct ImGuiContext; +struct ImGuiDataTypeInfo; +struct ImGuiGroupData; +struct ImGuiInputTextState; +struct ImGuiItemHoveredDataBackup; +struct ImGuiMenuColumns; +struct ImGuiNavMoveResult; +struct ImGuiNextWindowData; +struct ImGuiNextItemData; +struct ImGuiPopupData; +struct ImGuiSettingsHandler; +struct ImGuiStyleMod; +struct ImGuiTabBar; +struct ImGuiTabItem; +struct ImGuiWindow; +struct ImGuiWindowTempData; +struct ImGuiWindowSettings; +typedef int ImGuiLayoutType; +typedef int ImGuiButtonFlags; +typedef int ImGuiColumnsFlags; +typedef int ImGuiDragFlags; +typedef int ImGuiItemFlags; +typedef int ImGuiItemStatusFlags; +typedef int ImGuiNavHighlightFlags; +typedef int ImGuiNavDirSourceFlags; +typedef int ImGuiNavMoveFlags; +typedef int ImGuiNextItemDataFlags; +typedef int ImGuiNextWindowDataFlags; +typedef int ImGuiSeparatorFlags; +typedef int ImGuiSliderFlags; +typedef int ImGuiTextFlags; +typedef int ImGuiTooltipFlags; +extern ImGuiContext* GImGui; +typedef FILE* ImFileHandle; +typedef int ImPoolIdx;typedef struct ImVector_unsigned_char {int Size;int Capacity;unsigned char* Data;} ImVector_unsigned_char; +typedef struct ImVector_ImGuiSettingsHandler {int Size;int Capacity;ImGuiSettingsHandler* Data;} ImVector_ImGuiSettingsHandler; +typedef struct ImVector_ImGuiStyleMod {int Size;int Capacity;ImGuiStyleMod* Data;} ImVector_ImGuiStyleMod; +typedef struct ImVector_ImGuiPopupData {int Size;int Capacity;ImGuiPopupData* Data;} ImVector_ImGuiPopupData; +typedef struct ImVector_ImGuiItemFlags {int Size;int Capacity;ImGuiItemFlags* Data;} ImVector_ImGuiItemFlags; +typedef struct ImVector_ImGuiWindowPtr {int Size;int Capacity;ImGuiWindow** Data;} ImVector_ImGuiWindowPtr; +typedef struct ImVector_ImGuiTabItem {int Size;int Capacity;ImGuiTabItem* Data;} ImVector_ImGuiTabItem; +typedef struct ImVector_ImGuiShrinkWidthItem {int Size;int Capacity;ImGuiShrinkWidthItem* Data;} ImVector_ImGuiShrinkWidthItem; +typedef struct ImVector_ImGuiColumns {int Size;int Capacity;ImGuiColumns* Data;} ImVector_ImGuiColumns; +typedef struct ImVector_ImGuiID {int Size;int Capacity;ImGuiID* Data;} ImVector_ImGuiID; +typedef struct ImVector_ImGuiGroupData {int Size;int Capacity;ImGuiGroupData* Data;} ImVector_ImGuiGroupData; +typedef struct ImVector_ImGuiColumnData {int Size;int Capacity;ImGuiColumnData* Data;} ImVector_ImGuiColumnData; +typedef struct ImVector_int {int Size;int Capacity;int* Data;} ImVector_int; +typedef struct ImVector_ImGuiPtrOrIndex {int Size;int Capacity;ImGuiPtrOrIndex* Data;} ImVector_ImGuiPtrOrIndex; +typedef struct ImVector_ImDrawListPtr {int Size;int Capacity;ImDrawList** Data;} ImVector_ImDrawListPtr; +typedef struct ImVector_ImGuiColorMod {int Size;int Capacity;ImGuiColorMod* Data;} ImVector_ImGuiColorMod; +typedef struct ImVector_ImGuiWindowSettings {int Size;int Capacity;ImGuiWindowSettings* Data;} ImVector_ImGuiWindowSettings; +typedef struct ImChunkStream_ImGuiWindowSettings {ImVector_ImGuiWindowSettings Buf;} ImChunkStream_ImGuiWindowSettings; +typedef struct ImVector_ImGuiTabBar {int Size;int Capacity;ImGuiTabBar* Data;} ImVector_ImGuiTabBar; +typedef struct ImPool_ImGuiTabBar {ImVector_ImGuiTabBar Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;} ImPool_ImGuiTabBar; + +typedef struct +{ + int where; + int insert_length; + int delete_length; + int char_storage; +} StbUndoRecord; +typedef struct +{ + StbUndoRecord undo_rec [99]; + ImWchar undo_char[999]; + short undo_point, redo_point; + int undo_char_point, redo_char_point; +} StbUndoState; +typedef struct +{ + int cursor; + int select_start; + int select_end; + unsigned char insert_mode; + unsigned char cursor_at_end_of_line; + unsigned char initialized; + unsigned char has_preferred_x; + unsigned char single_line; + unsigned char padding1, padding2, padding3; + float preferred_x; + StbUndoState undostate; +} STB_TexteditState; +typedef struct +{ + float x0,x1; + float baseline_y_delta; + float ymin,ymax; + int num_chars; +} StbTexteditRow; +struct ImBoolVector +{ + ImVector_int Storage; +}; +typedef enum { + ImGuiButtonFlags_None = 0, + ImGuiButtonFlags_Repeat = 1 << 0, + ImGuiButtonFlags_PressedOnClick = 1 << 1, + ImGuiButtonFlags_PressedOnClickRelease = 1 << 2, + ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 1 << 3, + ImGuiButtonFlags_PressedOnRelease = 1 << 4, + ImGuiButtonFlags_PressedOnDoubleClick = 1 << 5, + ImGuiButtonFlags_PressedOnDragDropHold = 1 << 6, + ImGuiButtonFlags_FlattenChildren = 1 << 7, + ImGuiButtonFlags_AllowItemOverlap = 1 << 8, + ImGuiButtonFlags_DontClosePopups = 1 << 9, + ImGuiButtonFlags_Disabled = 1 << 10, + ImGuiButtonFlags_AlignTextBaseLine = 1 << 11, + ImGuiButtonFlags_NoKeyModifiers = 1 << 12, + ImGuiButtonFlags_NoHoldingActiveId = 1 << 13, + ImGuiButtonFlags_NoNavFocus = 1 << 14, + ImGuiButtonFlags_NoHoveredOnNav = 1 << 15, + ImGuiButtonFlags_MouseButtonLeft = 1 << 16, + ImGuiButtonFlags_MouseButtonRight = 1 << 17, + ImGuiButtonFlags_MouseButtonMiddle = 1 << 18, + ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle, + ImGuiButtonFlags_MouseButtonShift_ = 16, + ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft, + ImGuiButtonFlags_PressedOnMask_ = ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold, + ImGuiButtonFlags_PressedOnDefault_ = ImGuiButtonFlags_PressedOnClickRelease +}ImGuiButtonFlags_; +typedef enum { + ImGuiSliderFlags_None = 0, + ImGuiSliderFlags_Vertical = 1 << 0 +}ImGuiSliderFlags_; +typedef enum { + ImGuiDragFlags_None = 0, + ImGuiDragFlags_Vertical = 1 << 0 +}ImGuiDragFlags_; +typedef enum { + ImGuiColumnsFlags_None = 0, + ImGuiColumnsFlags_NoBorder = 1 << 0, + ImGuiColumnsFlags_NoResize = 1 << 1, + ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, + ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, + ImGuiColumnsFlags_GrowParentContentsSize= 1 << 4 +}ImGuiColumnsFlags_; +typedef enum { + ImGuiSelectableFlags_NoHoldingActiveID = 1 << 20, + ImGuiSelectableFlags_PressedOnClick = 1 << 21, + ImGuiSelectableFlags_PressedOnRelease = 1 << 22, + ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 23, + ImGuiSelectableFlags_DrawHoveredWhenHeld= 1 << 24, + ImGuiSelectableFlags_SetNavIdOnHover = 1 << 25 +}ImGuiSelectableFlagsPrivate_; +typedef enum { + ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 << 20 +}ImGuiTreeNodeFlagsPrivate_; +typedef enum { + ImGuiSeparatorFlags_None = 0, + ImGuiSeparatorFlags_Horizontal = 1 << 0, + ImGuiSeparatorFlags_Vertical = 1 << 1, + ImGuiSeparatorFlags_SpanAllColumns = 1 << 2 +}ImGuiSeparatorFlags_; +typedef enum { + ImGuiItemFlags_None = 0, + ImGuiItemFlags_NoTabStop = 1 << 0, + ImGuiItemFlags_ButtonRepeat = 1 << 1, + ImGuiItemFlags_Disabled = 1 << 2, + ImGuiItemFlags_NoNav = 1 << 3, + ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, + ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, + ImGuiItemFlags_MixedValue = 1 << 6, + ImGuiItemFlags_Default_ = 0 +}ImGuiItemFlags_; +typedef enum { + ImGuiItemStatusFlags_None = 0, + ImGuiItemStatusFlags_HoveredRect = 1 << 0, + ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, + ImGuiItemStatusFlags_Edited = 1 << 2, + ImGuiItemStatusFlags_ToggledSelection = 1 << 3, + ImGuiItemStatusFlags_ToggledOpen = 1 << 4, + ImGuiItemStatusFlags_HasDeactivated = 1 << 5, + ImGuiItemStatusFlags_Deactivated = 1 << 6 +}ImGuiItemStatusFlags_; +typedef enum { + ImGuiTextFlags_None = 0, + ImGuiTextFlags_NoWidthForLargeClippedText = 1 << 0 +}ImGuiTextFlags_; +typedef enum { + ImGuiTooltipFlags_None = 0, + ImGuiTooltipFlags_OverridePreviousTooltip = 1 << 0 +}ImGuiTooltipFlags_; +typedef enum { + ImGuiLayoutType_Horizontal = 0, + ImGuiLayoutType_Vertical = 1 +}ImGuiLayoutType_; +typedef enum { + ImGuiLogType_None = 0, + ImGuiLogType_TTY, + ImGuiLogType_File, + ImGuiLogType_Buffer, + ImGuiLogType_Clipboard +}ImGuiLogType; +typedef enum { + ImGuiAxis_None = -1, + ImGuiAxis_X = 0, + ImGuiAxis_Y = 1 +}ImGuiAxis; +typedef enum { + ImGuiPlotType_Lines, + ImGuiPlotType_Histogram +}ImGuiPlotType; +typedef enum { + ImGuiInputSource_None = 0, + ImGuiInputSource_Mouse, + ImGuiInputSource_Nav, + ImGuiInputSource_NavKeyboard, + ImGuiInputSource_NavGamepad, + ImGuiInputSource_COUNT +}ImGuiInputSource; +typedef enum { + ImGuiInputReadMode_Down, + ImGuiInputReadMode_Pressed, + ImGuiInputReadMode_Released, + ImGuiInputReadMode_Repeat, + ImGuiInputReadMode_RepeatSlow, + ImGuiInputReadMode_RepeatFast +}ImGuiInputReadMode; +typedef enum { + ImGuiNavHighlightFlags_None = 0, + ImGuiNavHighlightFlags_TypeDefault = 1 << 0, + ImGuiNavHighlightFlags_TypeThin = 1 << 1, + ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, + ImGuiNavHighlightFlags_NoRounding = 1 << 3 +}ImGuiNavHighlightFlags_; +typedef enum { + ImGuiNavDirSourceFlags_None = 0, + ImGuiNavDirSourceFlags_Keyboard = 1 << 0, + ImGuiNavDirSourceFlags_PadDPad = 1 << 1, + ImGuiNavDirSourceFlags_PadLStick = 1 << 2 +}ImGuiNavDirSourceFlags_; +typedef enum { + ImGuiNavMoveFlags_None = 0, + ImGuiNavMoveFlags_LoopX = 1 << 0, + ImGuiNavMoveFlags_LoopY = 1 << 1, + ImGuiNavMoveFlags_WrapX = 1 << 2, + ImGuiNavMoveFlags_WrapY = 1 << 3, + ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, + ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, + ImGuiNavMoveFlags_ScrollToEdge = 1 << 6 +}ImGuiNavMoveFlags_; +typedef enum { + ImGuiNavForward_None, + ImGuiNavForward_ForwardQueued, + ImGuiNavForward_ForwardActive +}ImGuiNavForward; +typedef enum { + ImGuiNavLayer_Main = 0, + ImGuiNavLayer_Menu = 1, + ImGuiNavLayer_COUNT +}ImGuiNavLayer; +typedef enum { + ImGuiPopupPositionPolicy_Default, + ImGuiPopupPositionPolicy_ComboBox +}ImGuiPopupPositionPolicy; +struct ImVec1 +{ + float x; +}; +struct ImVec2ih +{ + short x, y; +}; +struct ImRect +{ + ImVec2 Min; + ImVec2 Max; +}; +struct ImGuiDataTypeInfo +{ + size_t Size; + const char* PrintFmt; + const char* ScanFmt; +}; +struct ImGuiColorMod +{ + ImGuiCol Col; + ImVec4 BackupValue; +}; +struct ImGuiStyleMod +{ + ImGuiStyleVar VarIdx; + union { int BackupInt[2]; float BackupFloat[2]; }; +}; +struct ImGuiGroupData +{ + ImVec2 BackupCursorPos; + ImVec2 BackupCursorMaxPos; + ImVec1 BackupIndent; + ImVec1 BackupGroupOffset; + ImVec2 BackupCurrLineSize; + float BackupCurrLineTextBaseOffset; + ImGuiID BackupActiveIdIsAlive; + bool BackupActiveIdPreviousFrameIsAlive; + bool EmitItem; +}; +struct ImGuiMenuColumns +{ + float Spacing; + float Width, NextWidth; + float Pos[3], NextWidths[3]; +}; +struct ImGuiInputTextState +{ + ImGuiID ID; + int CurLenW, CurLenA; + ImVector_ImWchar TextW; + ImVector_char TextA; + ImVector_char InitialTextA; + bool TextAIsValid; + int BufCapacityA; + float ScrollX; + STB_TexteditState Stb; + float CursorAnim; + bool CursorFollow; + bool SelectedAllMouseLock; + ImGuiInputTextFlags UserFlags; + ImGuiInputTextCallback UserCallback; + void* UserCallbackData; +}; +struct ImGuiWindowSettings +{ + ImGuiID ID; + ImVec2ih Pos; + ImVec2ih Size; + bool Collapsed; +}; +struct ImGuiSettingsHandler +{ + const char* TypeName; + ImGuiID TypeHash; + void* (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name); + void (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); + void (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf); + void* UserData; +}; +struct ImGuiPopupData +{ + ImGuiID PopupId; + ImGuiWindow* Window; + ImGuiWindow* SourceWindow; + int OpenFrameCount; + ImGuiID OpenParentId; + ImVec2 OpenPopupPos; + ImVec2 OpenMousePos; +}; +struct ImGuiColumnData +{ + float OffsetNorm; + float OffsetNormBeforeResize; + ImGuiColumnsFlags Flags; + ImRect ClipRect; +}; +struct ImGuiColumns +{ + ImGuiID ID; + ImGuiColumnsFlags Flags; + bool IsFirstFrame; + bool IsBeingResized; + int Current; + int Count; + float OffMinX, OffMaxX; + float LineMinY, LineMaxY; + float HostCursorPosY; + float HostCursorMaxPosX; + ImRect HostClipRect; + ImRect HostWorkRect; + ImVector_ImGuiColumnData Columns; + ImDrawListSplitter Splitter; +}; +struct ImDrawListSharedData +{ + ImVec2 TexUvWhitePixel; + ImFont* Font; + float FontSize; + float CurveTessellationTol; + float CircleSegmentMaxError; + ImVec4 ClipRectFullscreen; + ImDrawListFlags InitialFlags; + ImVec2 CircleVtx12[12]; + ImU8 CircleSegmentCounts[64]; +}; +struct ImDrawDataBuilder +{ + ImVector_ImDrawListPtr Layers[2]; +}; +struct ImGuiNavMoveResult +{ + ImGuiWindow* Window; + ImGuiID ID; + ImGuiID FocusScopeId; + float DistBox; + float DistCenter; + float DistAxial; + ImRect RectRel; +}; +typedef enum { + ImGuiNextWindowDataFlags_None = 0, + ImGuiNextWindowDataFlags_HasPos = 1 << 0, + ImGuiNextWindowDataFlags_HasSize = 1 << 1, + ImGuiNextWindowDataFlags_HasContentSize = 1 << 2, + ImGuiNextWindowDataFlags_HasCollapsed = 1 << 3, + ImGuiNextWindowDataFlags_HasSizeConstraint = 1 << 4, + ImGuiNextWindowDataFlags_HasFocus = 1 << 5, + ImGuiNextWindowDataFlags_HasBgAlpha = 1 << 6 +}ImGuiNextWindowDataFlags_; +struct ImGuiNextWindowData +{ + ImGuiNextWindowDataFlags Flags; + ImGuiCond PosCond; + ImGuiCond SizeCond; + ImGuiCond CollapsedCond; + ImVec2 PosVal; + ImVec2 PosPivotVal; + ImVec2 SizeVal; + ImVec2 ContentSizeVal; + bool CollapsedVal; + ImRect SizeConstraintRect; + ImGuiSizeCallback SizeCallback; + void* SizeCallbackUserData; + float BgAlphaVal; + ImVec2 MenuBarOffsetMinVal; +}; +typedef enum { + ImGuiNextItemDataFlags_None = 0, + ImGuiNextItemDataFlags_HasWidth = 1 << 0, + ImGuiNextItemDataFlags_HasOpen = 1 << 1 +}ImGuiNextItemDataFlags_; +struct ImGuiNextItemData +{ + ImGuiNextItemDataFlags Flags; + float Width; + ImGuiID FocusScopeId; + ImGuiCond OpenCond; + bool OpenVal; +}; +struct ImGuiShrinkWidthItem +{ + int Index; + float Width; +}; +struct ImGuiPtrOrIndex +{ + void* Ptr; + int Index; +}; +struct ImGuiContext +{ + bool Initialized; + bool FontAtlasOwnedByContext; + ImGuiIO IO; + ImGuiStyle Style; + ImFont* Font; + float FontSize; + float FontBaseSize; + ImDrawListSharedData DrawListSharedData; + double Time; + int FrameCount; + int FrameCountEnded; + int FrameCountRendered; + bool WithinFrameScope; + bool WithinFrameScopeWithImplicitWindow; + bool WithinEndChild; + ImVector_ImGuiWindowPtr Windows; + ImVector_ImGuiWindowPtr WindowsFocusOrder; + ImVector_ImGuiWindowPtr WindowsTempSortBuffer; + ImVector_ImGuiWindowPtr CurrentWindowStack; + ImGuiStorage WindowsById; + int WindowsActiveCount; + ImGuiWindow* CurrentWindow; + ImGuiWindow* HoveredWindow; + ImGuiWindow* HoveredRootWindow; + ImGuiWindow* MovingWindow; + ImGuiWindow* WheelingWindow; + ImVec2 WheelingWindowRefMousePos; + float WheelingWindowTimer; + ImGuiID HoveredId; + bool HoveredIdAllowOverlap; + ImGuiID HoveredIdPreviousFrame; + float HoveredIdTimer; + float HoveredIdNotActiveTimer; + ImGuiID ActiveId; + ImGuiID ActiveIdIsAlive; + float ActiveIdTimer; + bool ActiveIdIsJustActivated; + bool ActiveIdAllowOverlap; + bool ActiveIdHasBeenPressedBefore; + bool ActiveIdHasBeenEditedBefore; + bool ActiveIdHasBeenEditedThisFrame; + ImU32 ActiveIdUsingNavDirMask; + ImU32 ActiveIdUsingNavInputMask; + ImU64 ActiveIdUsingKeyInputMask; + ImVec2 ActiveIdClickOffset; + ImGuiWindow* ActiveIdWindow; + ImGuiInputSource ActiveIdSource; + int ActiveIdMouseButton; + ImGuiID ActiveIdPreviousFrame; + bool ActiveIdPreviousFrameIsAlive; + bool ActiveIdPreviousFrameHasBeenEditedBefore; + ImGuiWindow* ActiveIdPreviousFrameWindow; + ImGuiID LastActiveId; + float LastActiveIdTimer; + ImGuiNextWindowData NextWindowData; + ImGuiNextItemData NextItemData; + ImVector_ImGuiColorMod ColorModifiers; + ImVector_ImGuiStyleMod StyleModifiers; + ImVector_ImFontPtr FontStack; + ImVector_ImGuiPopupData OpenPopupStack; + ImVector_ImGuiPopupData BeginPopupStack; + ImGuiWindow* NavWindow; + ImGuiID NavId; + ImGuiID NavFocusScopeId; + ImGuiID NavActivateId; + ImGuiID NavActivateDownId; + ImGuiID NavActivatePressedId; + ImGuiID NavInputId; + ImGuiID NavJustTabbedId; + ImGuiID NavJustMovedToId; + ImGuiID NavJustMovedToFocusScopeId; + ImGuiID NavNextActivateId; + ImGuiInputSource NavInputSource; + ImRect NavScoringRectScreen; + int NavScoringCount; + ImGuiNavLayer NavLayer; + int NavIdTabCounter; + bool NavIdIsAlive; + bool NavMousePosDirty; + bool NavDisableHighlight; + bool NavDisableMouseHover; + bool NavAnyRequest; + bool NavInitRequest; + bool NavInitRequestFromMove; + ImGuiID NavInitResultId; + ImRect NavInitResultRectRel; + bool NavMoveFromClampedRefRect; + bool NavMoveRequest; + ImGuiNavMoveFlags NavMoveRequestFlags; + ImGuiNavForward NavMoveRequestForward; + ImGuiDir NavMoveDir, NavMoveDirLast; + ImGuiDir NavMoveClipDir; + ImGuiNavMoveResult NavMoveResultLocal; + ImGuiNavMoveResult NavMoveResultLocalVisibleSet; + ImGuiNavMoveResult NavMoveResultOther; + ImGuiWindow* NavWindowingTarget; + ImGuiWindow* NavWindowingTargetAnim; + ImGuiWindow* NavWindowingList; + float NavWindowingTimer; + float NavWindowingHighlightAlpha; + bool NavWindowingToggleLayer; + ImGuiWindow* FocusRequestCurrWindow; + ImGuiWindow* FocusRequestNextWindow; + int FocusRequestCurrCounterRegular; + int FocusRequestCurrCounterTabStop; + int FocusRequestNextCounterRegular; + int FocusRequestNextCounterTabStop; + bool FocusTabPressed; + ImDrawData DrawData; + ImDrawDataBuilder DrawDataBuilder; + float DimBgRatio; + ImDrawList BackgroundDrawList; + ImDrawList ForegroundDrawList; + ImGuiMouseCursor MouseCursor; + bool DragDropActive; + bool DragDropWithinSourceOrTarget; + ImGuiDragDropFlags DragDropSourceFlags; + int DragDropSourceFrameCount; + int DragDropMouseButton; + ImGuiPayload DragDropPayload; + ImRect DragDropTargetRect; + ImGuiID DragDropTargetId; + ImGuiDragDropFlags DragDropAcceptFlags; + float DragDropAcceptIdCurrRectSurface; + ImGuiID DragDropAcceptIdCurr; + ImGuiID DragDropAcceptIdPrev; + int DragDropAcceptFrameCount; + ImVector_unsigned_char DragDropPayloadBufHeap; + unsigned char DragDropPayloadBufLocal[16]; + ImGuiTabBar* CurrentTabBar; + ImPool_ImGuiTabBar TabBars; + ImVector_ImGuiPtrOrIndex CurrentTabBarStack; + ImVector_ImGuiShrinkWidthItem ShrinkWidthBuffer; + ImVec2 LastValidMousePos; + ImGuiInputTextState InputTextState; + ImFont InputTextPasswordFont; + ImGuiID TempInputTextId; + ImGuiColorEditFlags ColorEditOptions; + float ColorEditLastHue; + float ColorEditLastSat; + float ColorEditLastColor[3]; + ImVec4 ColorPickerRef; + bool DragCurrentAccumDirty; + float DragCurrentAccum; + float DragSpeedDefaultRatio; + float ScrollbarClickDeltaToGrabCenter; + int TooltipOverrideCount; + ImVector_char PrivateClipboard; + ImVec2 PlatformImePos; + ImVec2 PlatformImeLastPos; + bool SettingsLoaded; + float SettingsDirtyTimer; + ImGuiTextBuffer SettingsIniData; + ImVector_ImGuiSettingsHandler SettingsHandlers; + ImChunkStream_ImGuiWindowSettings SettingsWindows; + bool LogEnabled; + ImGuiLogType LogType; + ImFileHandle LogFile; + ImGuiTextBuffer LogBuffer; + float LogLinePosY; + bool LogLineFirstItem; + int LogDepthRef; + int LogDepthToExpand; + int LogDepthToExpandDefault; + bool DebugItemPickerActive; + ImGuiID DebugItemPickerBreakId; + float FramerateSecPerFrame[120]; + int FramerateSecPerFrameIdx; + float FramerateSecPerFrameAccum; + int WantCaptureMouseNextFrame; + int WantCaptureKeyboardNextFrame; + int WantTextInputNextFrame; + char TempBuffer[1024*3+1]; +}; +struct ImGuiWindowTempData +{ + ImVec2 CursorPos; + ImVec2 CursorPosPrevLine; + ImVec2 CursorStartPos; + ImVec2 CursorMaxPos; + ImVec2 CurrLineSize; + ImVec2 PrevLineSize; + float CurrLineTextBaseOffset; + float PrevLineTextBaseOffset; + ImVec1 Indent; + ImVec1 ColumnsOffset; + ImVec1 GroupOffset; + ImGuiID LastItemId; + ImGuiItemStatusFlags LastItemStatusFlags; + ImRect LastItemRect; + ImRect LastItemDisplayRect; + ImGuiNavLayer NavLayerCurrent; + int NavLayerCurrentMask; + int NavLayerActiveMask; + int NavLayerActiveMaskNext; + ImGuiID NavFocusScopeIdCurrent; + bool NavHideHighlightOneFrame; + bool NavHasScroll; + bool MenuBarAppending; + ImVec2 MenuBarOffset; + ImGuiMenuColumns MenuColumns; + int TreeDepth; + ImU32 TreeJumpToParentOnPopMask; + ImVector_ImGuiWindowPtr ChildWindows; + ImGuiStorage* StateStorage; + ImGuiColumns* CurrentColumns; + ImGuiLayoutType LayoutType; + ImGuiLayoutType ParentLayoutType; + int FocusCounterRegular; + int FocusCounterTabStop; + ImGuiItemFlags ItemFlags; + float ItemWidth; + float TextWrapPos; + ImVector_ImGuiItemFlags ItemFlagsStack; + ImVector_float ItemWidthStack; + ImVector_float TextWrapPosStack; + ImVector_ImGuiGroupData GroupStack; + short StackSizesBackup[6]; +}; +struct ImGuiWindow +{ + char* Name; + ImGuiID ID; + ImGuiWindowFlags Flags; + ImVec2 Pos; + ImVec2 Size; + ImVec2 SizeFull; + ImVec2 ContentSize; + ImVec2 ContentSizeExplicit; + ImVec2 WindowPadding; + float WindowRounding; + float WindowBorderSize; + int NameBufLen; + ImGuiID MoveId; + ImGuiID ChildId; + ImVec2 Scroll; + ImVec2 ScrollMax; + ImVec2 ScrollTarget; + ImVec2 ScrollTargetCenterRatio; + ImVec2 ScrollbarSizes; + bool ScrollbarX, ScrollbarY; + bool Active; + bool WasActive; + bool WriteAccessed; + bool Collapsed; + bool WantCollapseToggle; + bool SkipItems; + bool Appearing; + bool Hidden; + bool IsFallbackWindow; + bool HasCloseButton; + signed char ResizeBorderHeld; + short BeginCount; + short BeginOrderWithinParent; + short BeginOrderWithinContext; + ImGuiID PopupId; + ImS8 AutoFitFramesX, AutoFitFramesY; + ImS8 AutoFitChildAxises; + bool AutoFitOnlyGrows; + ImGuiDir AutoPosLastDirection; + int HiddenFramesCanSkipItems; + int HiddenFramesCannotSkipItems; + ImGuiCond SetWindowPosAllowFlags; + ImGuiCond SetWindowSizeAllowFlags; + ImGuiCond SetWindowCollapsedAllowFlags; + ImVec2 SetWindowPosVal; + ImVec2 SetWindowPosPivot; + ImVector_ImGuiID IDStack; + ImGuiWindowTempData DC; + ImRect OuterRectClipped; + ImRect InnerRect; + ImRect InnerClipRect; + ImRect WorkRect; + ImRect ClipRect; + ImRect ContentRegionRect; + int LastFrameActive; + float LastTimeActive; + float ItemWidthDefault; + ImGuiStorage StateStorage; + ImVector_ImGuiColumns ColumnsStorage; + float FontWindowScale; + int SettingsOffset; + ImDrawList* DrawList; + ImDrawList DrawListInst; + ImGuiWindow* ParentWindow; + ImGuiWindow* RootWindow; + ImGuiWindow* RootWindowForTitleBarHighlight; + ImGuiWindow* RootWindowForNav; + ImGuiWindow* NavLastChildNavWindow; + ImGuiID NavLastIds[ImGuiNavLayer_COUNT]; + ImRect NavRectRel[ImGuiNavLayer_COUNT]; + bool MemoryCompacted; + int MemoryDrawListIdxCapacity; + int MemoryDrawListVtxCapacity; +}; +struct ImGuiItemHoveredDataBackup +{ + ImGuiID LastItemId; + ImGuiItemStatusFlags LastItemStatusFlags; + ImRect LastItemRect; + ImRect LastItemDisplayRect; +}; +typedef enum { + ImGuiTabBarFlags_DockNode = 1 << 20, + ImGuiTabBarFlags_IsFocused = 1 << 21, + ImGuiTabBarFlags_SaveSettings = 1 << 22 +}ImGuiTabBarFlagsPrivate_; +typedef enum { + ImGuiTabItemFlags_NoCloseButton = 1 << 20 +}ImGuiTabItemFlagsPrivate_; +struct ImGuiTabItem +{ + ImGuiID ID; + ImGuiTabItemFlags Flags; + int LastFrameVisible; + int LastFrameSelected; + int NameOffset; + float Offset; + float Width; + float ContentWidth; +}; +struct ImGuiTabBar +{ + ImVector_ImGuiTabItem Tabs; + ImGuiID ID; + ImGuiID SelectedTabId; + ImGuiID NextSelectedTabId; + ImGuiID VisibleTabId; + int CurrFrameVisible; + int PrevFrameVisible; + ImRect BarRect; + float LastTabContentHeight; + float OffsetMax; + float OffsetMaxIdeal; + float OffsetNextTab; + float ScrollingAnim; + float ScrollingTarget; + float ScrollingTargetDistToVisibility; + float ScrollingSpeed; + ImGuiTabBarFlags Flags; + ImGuiID ReorderRequestTabId; + ImS8 ReorderRequestDir; + bool WantLayout; + bool VisibleTabWasSubmitted; + short LastTabItemIdx; + ImVec2 FramePadding; + ImGuiTextBuffer TabsNames; +}; +#endif