dear-imgui-1.0.2: Haskell bindings for Dear ImGui.
Safe HaskellNone
LanguageHaskell2010

DearImGui

Description

Main ImGui module, exporting the functions to create a GUI.

Synopsis

Context Creation and Access

newtype Context Source #

Wraps ImGuiContext*.

Constructors

Context (Ptr ()) 

createContext :: MonadIO m => m Context Source #

Wraps ImGui::CreateContext().

destroyContext :: MonadIO m => Context -> m () Source #

Wraps ImGui::DestroyContext().

Main

newFrame :: MonadIO m => m () Source #

Start a new Dear ImGui frame, you can submit any command from this point until render/endFrame.

Wraps ImGui::NewFrame().

endFrame :: MonadIO m => m () Source #

Ends the Dear ImGui frame. automatically called by render. If you don't need to render data (skipping rendering) you may call endFrame without render... but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call newFrame at all!

render :: MonadIO m => m () Source #

Ends the Dear ImGui frame, finalize the draw data. You can then get call getDrawData.

newtype DrawData Source #

Wraps ImDrawData*.

Constructors

DrawData (Ptr ()) 

getDrawData :: MonadIO m => m DrawData Source #

Valid after render and until the next call to newFrame. This is what you have to render.

checkVersion :: MonadIO m => m () Source #

Wraps IMGUI_CHECKVERSION()

Demo, Debug, Information

showDemoWindow :: MonadIO m => m () Source #

Create demo window. Demonstrate most ImGui features. Call this to learn about the library! Try to make it always available in your application!

showMetricsWindow :: MonadIO m => m () Source #

Create Metrics/Debugger window. Display Dear ImGui internals: windows, draw commands, various internal state, etc.

showAboutWindow :: MonadIO m => m () Source #

Create About window. display Dear ImGui version, credits and build/system information.

showUserGuide :: MonadIO m => m () Source #

Add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls).

getVersion :: MonadIO m => m String Source #

Get the compiled version string e.g. "1.80 WIP" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp).

Styles

styleColorsDark :: MonadIO m => m () Source #

New, recommended style (default).

Wraps ImGui::StyleColorsDark().

styleColorsLight :: MonadIO m => m () Source #

Best used with borders and a custom, thicker font.

Wraps ImGui::StyleColorsLight().

styleColorsClassic :: MonadIO m => m () Source #

Classic ImGui style.

Wraps ImGui::StyleColorsClasic().

Windows

withWindow :: MonadUnliftIO m => String -> (Bool -> m a) -> m a Source #

Append items to a window.

Action will get False if the window is collapsed or fully clipped.

You may append multiple times to the same window during the same frame by calling withWindow in multiple places.

withWindowOpen :: MonadUnliftIO m => String -> m () -> m () Source #

Append items to a window unless it is collapsed or fully clipped.

You may append multiple times to the same window during the same frame by calling withWindowOpen in multiple places.

withFullscreen :: MonadUnliftIO m => m () -> m () Source #

Append items to a fullscreen window.

The action runs inside a window that is set to behave as a backdrop. It has no typical window decorations, ignores events and does not jump to front.

You may append multiple times to it during the same frame by calling withFullscreen in multiple places.

begin :: MonadIO m => String -> m Bool Source #

Push window to the stack and start appending to it.

Returns False to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window. Always call a matching end for each begin call, regardless of its return value!

Wraps ImGui::Begin() with default options.

end :: MonadIO m => m () Source #

Pop window from the stack.

Wraps ImGui::End().

setNextWindowPos :: (MonadIO m, HasGetter ref ImVec2) => ref -> ImGuiCond -> Maybe ref -> m () Source #

Set next window position. Call before begin Use pivot=(0.5,0.5) to center on given point, etc.

Wraps ImGui::SetNextWindowPos()

setNextWindowSize :: (MonadIO m, HasGetter ref ImVec2) => ref -> ImGuiCond -> m () Source #

Set next window size. Call before begin

Wraps ImGui::SetNextWindowSize()

setNextWindowFullscreen :: MonadIO m => m () Source #

Set next window size and position to match current display size.

Call before begin.

Wraps ImGui::SetNextWindowPos(), ImGui::SetNextWindowSize()

setNextWindowContentSize :: (MonadIO m, HasGetter ref ImVec2) => ref -> m () Source #

Set next window content size (~ scrollable client area, which enforce the range of scrollbars). Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. call before begin

Wraps ImGui::SetNextWindowContentSize()

setNextWindowSizeConstraints :: (MonadIO m, HasGetter ref ImVec2) => ref -> ref -> m () Source #

Set next window size limits. use -1,-1 on either X/Y axis to preserve the current size. Sizes will be rounded down.

Wraps ImGui::SetNextWindowContentSize()

setNextWindowCollapsed :: MonadIO m => Bool -> ImGuiCond -> m () Source #

Set next window collapsed state. call before begin

Wraps ImGui::SetNextWindowCollapsed()

setNextWindowBgAlpha :: MonadIO m => Float -> m () Source #

Set next window background color alpha. helper to easily override the Alpha component of ImGuiCol_WindowBg, ChildBg, PopupBg. you may also use ImGuiWindowFlags_NoBackground.

Wraps ImGui::SetNextWindowBgAlpha()

Child Windows

withChild :: MonadUnliftIO m => String -> (Bool -> m a) -> m a Source #

Child windows used for self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child.

Action will get False if the child region is collapsed or fully clipped.

withChildOpen :: MonadUnliftIO m => String -> m () -> m () Source #

Child windows used for self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child.

Action will be skipped if the child region is collapsed or fully clipped.

beginChild :: MonadIO m => String -> m Bool Source #

Wraps ImGui::BeginChild().

endChild :: MonadIO m => m () Source #

Wraps ImGui::EndChild().

Parameter stacks

pushStyleColor :: (MonadIO m, HasGetter ref ImVec4) => ImGuiCol -> ref -> m () Source #

Modify a style color by pushing to the shared stack. always use this if you modify the style after newFrame

Wraps ImGui::PushStyleColor()

popStyleColor :: MonadIO m => CInt -> m () Source #

Remove style color modifications from the shared stack

Wraps ImGui::PopStyleColor()

pushStyleVar :: (MonadIO m, HasGetter ref ImVec2) => ImGuiStyleVar -> ref -> m () Source #

Modify a style variable by pushing to the shared stack. always use this if you modify the style after newFrame

Wraps ImGui::PushStyleVar()

popStyleVar :: MonadIO m => Int -> m () Source #

Remove style variable modifications from the shared stack

Wraps ImGui::PopStyleVar()

Cursor/Layout

separator :: MonadIO m => m () Source #

Separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.

Wraps ImGui::Separator()

sameLine :: MonadIO m => m () Source #

Call between widgets or groups to layout them horizontally.

Wraps ImGui::SameLine.

newLine :: MonadIO m => m () Source #

undo a sameLine or force a new line when in an horizontal-layout context.

Wraps ImGui::NewLine()

spacing :: MonadIO m => m () Source #

Add vertical spacing.

Wraps ImGui::Spacing()

dummy :: (MonadIO m, HasGetter ref ImVec2) => ref -> m () Source #

Add a dummy item of given size. unlike invisibleButton, dummy won't take the mouse click or be navigable into.

Wraps ImGui::Dummy()

indent :: MonadIO m => Float -> m () Source #

Move content position toward the right, by indent_w, or style.IndentSpacing if indent_w <= 0

Wraps ImGui::Indent()

unindent :: MonadIO m => Float -> m () Source #

Move content position back to the left, by indent_w, or style.IndentSpacing if indent_w <= 0

Wraps ImGui::Unindent()

setNextItemWidth :: MonadIO m => Float -> m () Source #

Affect large frame+labels widgets only.

Wraps ImGui::SetNextItemWidth()

withGroup :: MonadUnliftIO m => m a -> m a Source #

Lock horizontal starting position

Wraps ImGui::BeginGroup() and ImGui::EndGroup()

beginGroup :: MonadIO m => m () Source #

lock horizontal starting position

Wraps ImGui::BeginGroup()

endGroup :: MonadIO m => m () Source #

unlock horizontal starting position + capture the whole group bounding box into one "item" (so you can use isItemHovered or layout primitives such as sameLine on whole group, etc.)

Wraps ImGui::EndGroup()

setCursorPos :: (MonadIO m, HasGetter ref ImVec2) => ref -> m () Source #

Set cursor position in window-local coordinates

Wraps ImGui::SetCursorPos()

alignTextToFramePadding :: MonadIO m => m () Source #

Vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item)

Wraps ImGui::AlignTextToFramePadding()

ID stack

withID :: (MonadUnliftIO m, ToID id) => id -> m a -> m a Source #

Add an element to a ID stack

Read the FAQ (http:/dearimgui.orgfaq) for more details about how ID are handled in dear imgui.

Those questions are answered and impacted by understanding of the ID stack system: * "Q: Why is my widget not reacting when I click on it?" * "Q: How can I have widgets with an empty label?" * "Q: How can I have multiple widgets with the same label?"

Wraps ImGui::PushId and ImGui::PopId

class ToID a where Source #

A supplementary class to match overloaded functions in C++ the library.

Methods

pushID :: MonadIO m => a -> m () Source #

Instances

Instances details
ToID Int Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => Int -> m () Source #

ToID Integer Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => Integer -> m () Source #

ToID CInt Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => CInt -> m () Source #

ToID String Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => String -> m () Source #

ToID (Ptr a) Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => Ptr a -> m () Source #

ToID (Ptr CChar) Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => Ptr CChar -> m () Source #

ToID (Ptr CChar, Int) Source # 
Instance details

Defined in DearImGui

Methods

pushID :: MonadIO m => (Ptr CChar, Int) -> m () Source #

Widgets

Text

text :: MonadIO m => String -> m () Source #

Plain text.

textColored :: (HasGetter ref ImVec4, MonadIO m) => ref -> String -> m () Source #

Colored text.

textDisabled :: MonadIO m => String -> m () Source #

Plain text in a "disabled" color according to current style.

textWrapped :: MonadIO m => String -> m () Source #

Plain text with a word-wrap capability.

Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, you may need to set a size using setNextWindowSize.

labelText :: MonadIO m => String -> String -> m () Source #

Label+text combo aligned to other label+value widgets.

bulletText :: MonadIO m => String -> m () Source #

Text with a little bullet aligned to the typical tree node.

Main

button :: MonadIO m => String -> m Bool Source #

A button. Returns True when clicked.

Wraps ImGui::Button().

smallButton :: MonadIO m => String -> m Bool Source #

Button with FramePadding=(0,0) to easily embed within text.

Wraps ImGui::SmallButton().

arrowButton :: MonadIO m => String -> ImGuiDir -> m Bool Source #

Square button with an arrow shape.

Wraps ImGui::ArrowButton().

checkbox :: (HasSetter ref Bool, HasGetter ref Bool, MonadIO m) => String -> ref -> m Bool Source #

Wraps ImGui::Checkbox().

bullet :: MonadIO m => m () Source #

Draw a small circle + keep the cursor on the same line. Advance cursor x position by getTreeNodeToLabelSpacing, same distance that treeNode uses.

Combo Box

withCombo :: MonadUnliftIO m => String -> String -> (Bool -> m a) -> m a Source #

Create a combo box with a given label and preview value.

Action will get True if the combo box is open. In this state, you should populate the contents of the combo box - for example, by calling selectable.

withComboOpen :: MonadUnliftIO m => String -> String -> m () -> m () Source #

Create a combo box with a given label and preview value.

Action will be called if the combo box is open to populate the contents of the combo box - for example, by calling selectable.

beginCombo :: MonadIO m => String -> String -> m Bool Source #

Begin creating a combo box with a given label and preview value.

Returns True if the combo box is open. In this state, you should populate the contents of the combo box - for example, by calling selectable.

Only call endCombo if beginCombo returns True!

Wraps ImGui::BeginCombo().

endCombo :: MonadIO m => m () Source #

Only call endCombo if beginCombo returns True!

Wraps ImGui::EndCombo().

combo :: (MonadIO m, HasGetter ref Int, HasSetter ref Int) => String -> ref -> [String] -> m Bool Source #

Wraps ImGui::Combo().

Drag Sliders

dragFloat :: (MonadIO m, HasSetter ref Float, HasGetter ref Float) => String -> ref -> Float -> Float -> Float -> m Bool Source #

Wraps ImGui::DragFloat()

dragFloat2 :: (MonadIO m, HasSetter ref (Float, Float), HasGetter ref (Float, Float)) => String -> ref -> Float -> Float -> Float -> m Bool Source #

Wraps ImGui::DragFloat2()

dragFloat3 :: (MonadIO m, HasSetter ref (Float, Float, Float), HasGetter ref (Float, Float, Float)) => String -> ref -> Float -> Float -> Float -> m Bool Source #

Wraps ImGui::DragFloat3()

dragFloat4 :: (MonadIO m, HasSetter ref (Float, Float, Float, Float), HasGetter ref (Float, Float, Float, Float)) => String -> ref -> Float -> Float -> Float -> m Bool Source #

Wraps ImGui::DragFloat4()

dragFloatRange2 :: (MonadIO m, HasSetter ref Float, HasGetter ref Float) => String -> ref -> ref -> Float -> Float -> Float -> String -> String -> m Bool Source #

dragInt :: (MonadIO m, HasSetter ref Int, HasGetter ref Int) => String -> ref -> Float -> Int -> Int -> m Bool Source #

Wraps ImGui::DragFloat()

dragInt2 :: (MonadIO m, HasSetter ref (Int, Int), HasGetter ref (Int, Int)) => String -> ref -> Float -> Int -> Int -> m Bool Source #

Wraps ImGui::DragInt2()

dragInt3 :: (MonadIO m, HasSetter ref (Int, Int, Int), HasGetter ref (Int, Int, Int)) => String -> ref -> Float -> Int -> Int -> m Bool Source #

Wraps ImGui::DragInt3()

dragInt4 :: (MonadIO m, HasSetter ref (Int, Int, Int, Int), HasGetter ref (Int, Int, Int, Int)) => String -> ref -> Float -> Int -> Int -> m Bool Source #

Wraps ImGui::DragInt4()

dragIntRange2 :: (MonadIO m, HasSetter ref Int, HasGetter ref Int) => String -> ref -> ref -> Float -> Int -> Int -> String -> String -> m Bool Source #

dragScalar :: (HasSetter ref a, HasGetter ref a, Storable a, MonadIO m) => String -> ImGuiDataType -> ref -> Float -> ref -> ref -> String -> ImGuiSliderFlags -> m Bool Source #

dragScalarN :: (HasSetter valueRef [a], HasGetter valueRef [a], HasGetter rangeRef a, Storable a, MonadIO m) => String -> ImGuiDataType -> valueRef -> Float -> rangeRef -> rangeRef -> String -> ImGuiSliderFlags -> m Bool Source #

Slider

sliderFloat :: (MonadIO m, HasSetter ref Float, HasGetter ref Float) => String -> ref -> Float -> Float -> m Bool Source #

Wraps ImGui::SliderFloat()

sliderFloat2 :: (MonadIO m, HasSetter ref (Float, Float), HasGetter ref (Float, Float)) => String -> ref -> Float -> Float -> m Bool Source #

Wraps ImGui::SliderFloat2()

sliderFloat3 :: (MonadIO m, HasSetter ref (Float, Float, Float), HasGetter ref (Float, Float, Float)) => String -> ref -> Float -> Float -> m Bool Source #

Wraps ImGui::SliderFloat3()

sliderFloat4 :: (MonadIO m, HasSetter ref (Float, Float, Float, Float), HasGetter ref (Float, Float, Float, Float)) => String -> ref -> Float -> Float -> m Bool Source #

Wraps ImGui::SliderFloat4()

sliderAngle :: (MonadIO m, HasSetter ref Float, HasGetter ref Float) => String -> ref -> Float -> Float -> m Bool Source #

Slider widget to select an angle in radians, while displaying degrees.

sliderInt :: (MonadIO m, HasSetter ref Int, HasGetter ref Int) => String -> ref -> Int -> Int -> m Bool Source #

Wraps ImGui::SliderInt()

sliderInt2 :: (MonadIO m, HasSetter ref (Int, Int), HasGetter ref (Int, Int)) => String -> ref -> Int -> Int -> m Bool Source #

Wraps ImGui::SliderInt2()

sliderInt3 :: (MonadIO m, HasSetter ref (Int, Int, Int), HasGetter ref (Int, Int, Int)) => String -> ref -> Int -> Int -> m Bool Source #

Wraps ImGui::SliderInt3()

sliderInt4 :: (MonadIO m, HasSetter ref (Int, Int, Int, Int), HasGetter ref (Int, Int, Int, Int)) => String -> ref -> Int -> Int -> m Bool Source #

Wraps ImGui::SliderInt4()

sliderScalar :: (HasSetter ref a, HasGetter ref a, Storable a, MonadIO m) => String -> ImGuiDataType -> ref -> ref -> ref -> String -> ImGuiSliderFlags -> m Bool Source #

sliderScalarN :: (HasSetter valueRef [a], HasGetter valueRef [a], HasGetter rangeRef a, Storable a, MonadIO m) => String -> ImGuiDataType -> valueRef -> rangeRef -> rangeRef -> String -> ImGuiSliderFlags -> m Bool Source #

vSliderFloat :: (HasSetter ref Float, HasGetter ref Float, MonadIO m) => String -> ImVec2 -> ref -> Float -> Float -> m Bool Source #

vSliderInt :: (HasSetter ref Int, HasGetter ref Int, MonadIO m) => String -> ImVec2 -> ref -> Int -> Int -> m Bool Source #

vSliderScalar :: (HasSetter ref a, HasGetter ref a, Storable a, MonadIO m) => String -> ImVec2 -> ImGuiDataType -> ref -> ref -> ref -> String -> ImGuiSliderFlags -> m Bool Source #

Text Input

inputText :: (MonadIO m, HasSetter ref String, HasGetter ref String) => String -> ref -> Int -> m Bool Source #

Wraps ImGui::InputText().

Color Editor/Picker

colorPicker3 :: (MonadIO m, HasSetter ref ImVec3, HasGetter ref ImVec3) => String -> ref -> m Bool Source #

Wraps ImGui::ColorPicker3().

colorButton :: (MonadIO m, HasSetter ref ImVec4, HasGetter ref ImVec4) => String -> ref -> m Bool Source #

Display a color square/button, hover for details, return true when pressed.

Wraps ImGui::ColorButton().

Trees

treeNode :: MonadIO m => String -> m Bool Source #

Wraps ImGui::TreeNode().

treePush :: MonadIO m => String -> m () Source #

Wraps ImGui::TreePush().

treePop :: MonadIO m => m () Source #

Wraps ImGui::TreePop().

Selectables

selectable :: MonadIO m => String -> m Bool Source #

Wraps ImGui::Selectable().

List Boxes

listBox :: (MonadIO m, HasGetter ref Int, HasSetter ref Int) => String -> ref -> [String] -> m Bool Source #

Data Plotting

plotHistogram :: MonadIO m => String -> [CFloat] -> m () Source #

Wraps ImGui::PlotHistogram().

Menus

withMenuBar :: MonadUnliftIO m => (Bool -> m a) -> m a Source #

Append items to a window with MenuBar flag.

The action will get False if the menu is not visible.

withMenuBarOpen :: MonadUnliftIO m => m () -> m () Source #

Append items to a window with MenuBar flag.

The action will be skipped if the menu is not visible.

beginMenuBar :: MonadIO m => m Bool Source #

Append to menu-bar of current window (requires ImGuiWindowFlagsMenuBar flag set on parent window).

Wraps ImGui::BeginMenuBar().

endMenuBar :: MonadIO m => m () Source #

Only call endMenuBar if beginMenuBar returns true!

Wraps ImGui::EndMenuBar().

withMainMenuBar :: MonadUnliftIO m => (Bool -> m a) -> m a Source #

Create a menu bar at the top of the screen and append to it.

The action will get False if the menu is not visible.

withMainMenuBarOpen :: MonadUnliftIO m => m () -> m () Source #

Create a menu bar at the top of the screen and append to it.

The action will be skipped if the menu is not visible.

beginMainMenuBar :: MonadIO m => m Bool Source #

Create and append to a full screen menu-bar.

Wraps ImGui::BeginMainMenuBar().

endMainMenuBar :: MonadIO m => m () Source #

Only call endMainMenuBar if beginMainMenuBar returns true!

Wraps ImGui::EndMainMenuBar().

withMenu :: MonadUnliftIO m => String -> (Bool -> m a) -> m a Source #

Create a sub-menu entry.

The action will get False if the entry is not visible.

withMenuOpen :: MonadUnliftIO m => String -> m () -> m () Source #

Create a sub-menu entry.

The action will be skipped if the entry is not visible.

beginMenu :: MonadIO m => String -> m Bool Source #

Create a sub-menu entry.

Wraps ImGui::BeginMenu().

endMenu :: MonadIO m => m () Source #

Only call endMenu if beginMenu returns true!

Wraps ImGui::EndMenu().

menuItem :: MonadIO m => String -> m Bool Source #

Return true when activated. Shortcuts are displayed for convenience but not processed by ImGui at the moment

Wraps ImGui::MenuItem()

Tabs, tab bar

withTabBar :: MonadUnliftIO m => String -> ImGuiTabBarFlags -> (Bool -> m a) -> m a Source #

Create a TabBar and start appending to it.

The action will get False if the Tab bar is not visible.

withTabBarOpen :: MonadUnliftIO m => String -> ImGuiTabBarFlags -> m () -> m () Source #

Create a TabBar and start appending to it.

The action will be skipped if the Tab bar is not visible.

beginTabBar :: MonadIO m => String -> ImGuiTabBarFlags -> m Bool Source #

Create a TabBar and start appending to it.

Wraps ImGui::BeginTabBar.

endTabBar :: MonadIO m => m () Source #

Finish appending elements to a tab bar. Only call if beginTabBar returns True.

Wraps ImGui::EndTabBar.

withTabItem :: (MonadUnliftIO m, HasGetter ref Bool, HasSetter ref Bool) => String -> ref -> ImGuiTabBarFlags -> (Bool -> m a) -> m a Source #

Create a new tab.

The action will get True if the tab is selected.

withTabItemOpen :: (MonadUnliftIO m, HasGetter ref Bool, HasSetter ref Bool) => String -> ref -> ImGuiTabBarFlags -> m () -> m () Source #

Create a new tab.

The action will be skipped unless the tab is selected.

beginTabItem :: (MonadIO m, HasGetter ref Bool, HasSetter ref Bool) => String -> ref -> ImGuiTabBarFlags -> m Bool Source #

Create a new tab. Returns True if the tab is selected.

Wraps ImGui::BeginTabItem.

endTabItem :: MonadIO m => m () Source #

Finish appending elements to a tab. Only call if beginTabItem returns True.

Wraps ImGui::EndTabItem.

tabItemButton :: MonadIO m => String -> ImGuiTabItemFlags -> m Bool Source #

Create a tab that behaves like a button. Returns True when clicked. Cannot be selected in the tab bar.

Wraps ImGui.TabItemButton.

setTabItemClosed :: MonadIO m => String -> m () Source #

Notify the tab bar (or the docking system) that a tab/window is about to close. Useful to reduce visual flicker on reorderable tab bars.

For tab-bar: call after beginTabBar and before tab submission. Otherwise, call with a window name.

Tooltips

withTooltip :: MonadUnliftIO m => m a -> m a Source #

Create a tooltip.

Those are windows that follow a mouse and don't take focus away. Can contain any kind of items.

beginTooltip :: MonadIO m => m () Source #

Begin/append a tooltip window to create full-featured tooltip (with any kind of items).

Wraps ImGui::BeginTooltip()

endTooltip :: MonadIO m => m () Source #

Wraps ImGui::EndTooltip()

Popups/Modals

withPopup :: MonadUnliftIO m => String -> (Bool -> m a) -> m a Source #

Append intems to a non-modal Popup.

Non-modal popups can be closed by clicking anywhere outside them, or by pressing ESCAPE.

Visibility state is held internally instead of being held by the programmer.

The action will get True if the popup is open.

withPopupOpen :: MonadUnliftIO m => String -> m () -> m () Source #

Append intems to a non-modal Popup.

Non-modal popups can be closed by clicking anywhere outside them, or by pressing ESCAPE.

Visibility state is held internally instead of being held by the programmer.

The action will be called only if the popup is open.

beginPopup :: MonadIO m => String -> m Bool Source #

Returns True if the popup is open, and you can start outputting to it.

Wraps ImGui::BeginPopup()

withPopupModal :: MonadUnliftIO m => String -> (Bool -> m a) -> m a Source #

Append intems to a modal Popup.

Modal popups can be closed only with closeCurrentPopup.

Visibility state is held internally instead of being held by the programmer.

The action will get True if the popup is open.

withPopupModalOpen :: MonadUnliftIO m => String -> m () -> m () Source #

Append intems to a modal Popup.

Modal popups can be closed only with closeCurrentPopup.

Visibility state is held internally instead of being held by the programmer.

The action will be called only if the popup is open.

beginPopupModal :: MonadIO m => String -> m Bool Source #

Returns True if the modal is open, and you can start outputting to it.

Wraps ImGui::BeginPopupModal()

endPopup :: MonadIO m => m () Source #

Only call endPopup if beginPopup or beginPopupModal returns True!

Wraps ImGui::BeginPopupModal()

openPopup :: MonadIO m => String -> m () Source #

Call to mark popup as open (don't call every frame!).

Wraps ImGui::OpenPopup()

closeCurrentPopup :: MonadIO m => m () Source #

Manually close the popup we have begin-ed into.

Wraps ImGui::ClosePopup()

Item/Widgets Utilities

isItemHovered :: MonadIO m => m Bool Source #

Is the last item hovered? (and usable, aka not blocked by a popup, etc.).

Wraps ImGui::IsItemHovered()

Types

class KnownNat (Count a) => FiniteEnum a where Source #

Minimal complete definition

Nothing

Associated Types

type Count a :: Nat Source #

Methods

count :: Natural Source #

Instances

Instances details
FiniteEnum ImGuiMouseCursor Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiMouseCursor :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiMouseButton Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiMouseButton :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiStyleVar Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiStyleVar :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiCol Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiCol :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiNavInput Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiNavInput :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiKey Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiKey :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiDir Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiDir :: Nat Source #

Methods

count :: Natural Source #

FiniteEnum ImGuiDataType Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiDataType :: Nat Source #

Methods

count :: Natural Source #

newtype ImGuiWindowFlags Source #

Constructors

ImGuiWindowFlags CInt 

Instances

Instances details
Eq ImGuiWindowFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiWindowFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiWindowFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiWindowFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiInputTextFlags Source #

Instances

Instances details
Eq ImGuiInputTextFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiInputTextFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiInputTextFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiInputTextFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiTreeNodeFlags Source #

Constructors

ImGuiTreeNodeFlags CInt 

Instances

Instances details
Eq ImGuiTreeNodeFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiTreeNodeFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiTreeNodeFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiTreeNodeFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiPopupFlags Source #

Constructors

ImGuiPopupFlags CInt 

Instances

Instances details
Eq ImGuiPopupFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiPopupFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiPopupFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiPopupFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiSelectableFlags Source #

Instances

Instances details
Eq ImGuiSelectableFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiSelectableFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiSelectableFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiSelectableFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiComboFlags Source #

Constructors

ImGuiComboFlags CInt 

Instances

Instances details
Eq ImGuiComboFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiComboFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiComboFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiComboFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiTabBarFlags Source #

Constructors

ImGuiTabBarFlags CInt 

Instances

Instances details
Eq ImGuiTabBarFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiTabBarFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiTabBarFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiTabBarFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiTabItemFlags Source #

Constructors

ImGuiTabItemFlags CInt 

Instances

Instances details
Eq ImGuiTabItemFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiTabItemFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiTabItemFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiTabItemFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiTableFlags Source #

Constructors

ImGuiTableFlags CInt 

Instances

Instances details
Eq ImGuiTableFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiTableFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiTableFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiTableFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiTableColumnFlags Source #

Instances

Instances details
Eq ImGuiTableColumnFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiTableColumnFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiTableColumnFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiTableColumnFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiTableRowFlags Source #

Constructors

ImGuiTableRowFlags CInt 

Instances

Instances details
Eq ImGuiTableRowFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiTableRowFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiTableRowFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiTableRowFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiFocusedFlags Source #

Constructors

ImGuiFocusedFlags CInt 

Instances

Instances details
Eq ImGuiFocusedFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiFocusedFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiFocusedFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiFocusedFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiHoveredFlags Source #

Constructors

ImGuiHoveredFlags CInt 

Instances

Instances details
Eq ImGuiHoveredFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiHoveredFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiHoveredFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiHoveredFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiDragDropFlags Source #

Constructors

ImGuiDragDropFlags CInt 

Instances

Instances details
Eq ImGuiDragDropFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiDragDropFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiDragDropFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiDragDropFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiDir Source #

Constructors

ImGuiDir CInt 

Instances

Instances details
Eq ImGuiDir Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiDir Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiDir Source # 
Instance details

Defined in DearImGui.Enums

FiniteEnum ImGuiDir Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiDir :: Nat Source #

Methods

count :: Natural Source #

type Count ImGuiDir Source # 
Instance details

Defined in DearImGui.Enums

type Count ImGuiDir = 4

newtype ImGuiKey Source #

Constructors

ImGuiKey CInt 

Instances

Instances details
Eq ImGuiKey Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiKey Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiKey Source # 
Instance details

Defined in DearImGui.Enums

FiniteEnum ImGuiKey Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiKey :: Nat Source #

Methods

count :: Natural Source #

type Count ImGuiKey Source # 
Instance details

Defined in DearImGui.Enums

type Count ImGuiKey = 22

newtype ImGuiKeyModFlags Source #

Constructors

ImGuiKeyModFlags CInt 

Instances

Instances details
Eq ImGuiKeyModFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiKeyModFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiKeyModFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiKeyModFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiConfigFlags Source #

Constructors

ImGuiConfigFlags CInt 

Instances

Instances details
Eq ImGuiConfigFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiConfigFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiConfigFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiConfigFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiBackendFlags Source #

Constructors

ImGuiBackendFlags CInt 

Instances

Instances details
Eq ImGuiBackendFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiBackendFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiBackendFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiBackendFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiCol Source #

Constructors

ImGuiCol CInt 

Instances

Instances details
Eq ImGuiCol Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiCol Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiCol Source # 
Instance details

Defined in DearImGui.Enums

FiniteEnum ImGuiCol Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiCol :: Nat Source #

Methods

count :: Natural Source #

type Count ImGuiCol Source # 
Instance details

Defined in DearImGui.Enums

type Count ImGuiCol = 53

newtype ImGuiButtonFlags Source #

Constructors

ImGuiButtonFlags CInt 

Instances

Instances details
Eq ImGuiButtonFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiButtonFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiButtonFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiButtonFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiColorEditFlags Source #

Instances

Instances details
Eq ImGuiColorEditFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiColorEditFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiColorEditFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiColorEditFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiSliderFlags Source #

Constructors

ImGuiSliderFlags CInt 

Instances

Instances details
Eq ImGuiSliderFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiSliderFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiSliderFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImGuiSliderFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiMouseButton Source #

Constructors

ImGuiMouseButton CInt 

Instances

Instances details
Eq ImGuiMouseButton Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiMouseButton Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiMouseButton Source # 
Instance details

Defined in DearImGui.Enums

FiniteEnum ImGuiMouseButton Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiMouseButton :: Nat Source #

Methods

count :: Natural Source #

type Count ImGuiMouseButton Source # 
Instance details

Defined in DearImGui.Enums

newtype ImGuiMouseCursor Source #

Constructors

ImGuiMouseCursor CInt 

Instances

Instances details
Eq ImGuiMouseCursor Source # 
Instance details

Defined in DearImGui.Enums

Ord ImGuiMouseCursor Source # 
Instance details

Defined in DearImGui.Enums

Storable ImGuiMouseCursor Source # 
Instance details

Defined in DearImGui.Enums

FiniteEnum ImGuiMouseCursor Source # 
Instance details

Defined in DearImGui.Enums

Associated Types

type Count ImGuiMouseCursor :: Nat Source #

Methods

count :: Natural Source #

type Count ImGuiMouseCursor Source # 
Instance details

Defined in DearImGui.Enums

newtype ImDrawFlags Source #

Constructors

ImDrawFlags CInt 

Instances

Instances details
Eq ImDrawFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImDrawFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImDrawFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImDrawFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImDrawListFlags Source #

Constructors

ImDrawListFlags CInt 

Instances

Instances details
Eq ImDrawListFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImDrawListFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImDrawListFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImDrawListFlags Source # 
Instance details

Defined in DearImGui.Enums

newtype ImFontAtlasFlags Source #

Constructors

ImFontAtlasFlags CInt 

Instances

Instances details
Eq ImFontAtlasFlags Source # 
Instance details

Defined in DearImGui.Enums

Ord ImFontAtlasFlags Source # 
Instance details

Defined in DearImGui.Enums

Storable ImFontAtlasFlags Source # 
Instance details

Defined in DearImGui.Enums

Bits ImFontAtlasFlags Source # 
Instance details

Defined in DearImGui.Enums

data ImVec2 Source #

Constructors

ImVec2 

Fields

Instances

Instances details
Storable ImVec2 Source # 
Instance details

Defined in DearImGui.Structs

data ImVec3 Source #

Constructors

ImVec3 

Fields

Instances

Instances details
Storable ImVec3 Source # 
Instance details

Defined in DearImGui.Structs

data ImVec4 Source #

Constructors

ImVec4 

Fields

Instances

Instances details
Storable ImVec4 Source # 
Instance details

Defined in DearImGui.Structs