Interface IUiBuilder
This interface represents the Dalamud UI that is drawn on top of the game. It can be used to draw custom windows and overlays.
Assembly: Dalamud.dll
public interface IUiBuilder
Properties
DefaultFontHandle
Gets the handle to the default Dalamud font - supporting all game languages and icons.
IFontHandle DefaultFontHandle { get; }
IconFontHandle
Gets the default Dalamud icon font based on FontAwesome 5 Free solid.
IFontHandle IconFontHandle { get; }
MonoFontHandle
Gets the default Dalamud monospaced font based on Inconsolata Regular.
IFontHandle MonoFontHandle { get; }
IconFontFixedWidthHandle
Gets the default Dalamud icon font based on FontAwesome 5 free solid with a fixed width and vertically centered glyphs.
IFontHandle IconFontFixedWidthHandle { get; }
DefaultFontSpec
Gets the default font specifications.
IFontSpec DefaultFontSpec { get; }
FontDefaultSizePt
Gets the default Dalamud font size in points.
float FontDefaultSizePt { get; }
FontDefaultSizePx
Gets the default Dalamud font size in pixels.
float FontDefaultSizePx { get; }
FontDefault
Gets the default Dalamud font - supporting all game languages and icons.
<strong>Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.</strong>
ImFontPtr FontDefault { get; }
FontIcon
Gets the default Dalamud icon font based on FontAwesome 5 Free solid.
<strong>Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.</strong>
ImFontPtr FontIcon { get; }
FontMono
Gets the default Dalamud monospaced font based on Inconsolata Regular.
<strong>Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.</strong>
ImFontPtr FontMono { get; }
DeviceHandle
Gets the game's active Direct3D device.
nint DeviceHandle { get; }
WindowHandlePtr
Gets the game's main window handle.
nint WindowHandlePtr { get; }
DisableAutomaticUiHide
Gets or sets a value indicating whether this plugin should hide its UI automatically when the game's UI is hidden.
bool DisableAutomaticUiHide { get; set; }
DisableUserUiHide
Gets or sets a value indicating whether this plugin should hide its UI automatically when the user toggles the UI.
bool DisableUserUiHide { get; set; }
DisableCutsceneUiHide
Gets or sets a value indicating whether this plugin should hide its UI automatically during cutscenes.
bool DisableCutsceneUiHide { get; set; }
DisableGposeUiHide
Gets or sets a value indicating whether this plugin should hide its UI automatically while gpose is active.
bool DisableGposeUiHide { get; set; }
OverrideGameCursor
Gets or sets a value indicating whether the game's cursor should be overridden with the ImGui cursor.
bool OverrideGameCursor { get; set; }
FrameCount
Gets the count of Draw calls made since plugin creation.
ulong FrameCount { get; }
CutsceneActive
Gets a value indicating whether a cutscene is playing.
bool CutsceneActive { get; }
ShouldModifyUi
Gets a value indicating whether this plugin should modify the game's interface at this time.
bool ShouldModifyUi { get; }
UiPrepared
Gets a value indicating whether UI functions can be used.
bool UiPrepared { get; }
FontAtlas
Gets the plugin-private font atlas.
IFontAtlas FontAtlas { get; }
ShouldUseReducedMotion
Gets a value indicating whether to use "reduced motion". This usually means that you should use less intrusive animations, or disable them entirely.
bool ShouldUseReducedMotion { get; }
PluginUISoundEffectsEnabled
Gets a value indicating whether the user has enabled the "Enable sound effects for plugin windows" setting.
This setting is effected by the in-game "System Sounds" option and volume.
bool PluginUISoundEffectsEnabled { get; }
Methods
LoadUld(string)
Loads an ULD file that can load textures containing multiple icons in a single texture.
UldWrapper LoadUld(string uldPath)
Returns
Dalamud.Interface.UldWrapper: A wrapper around said ULD file.
Parameters
| Type | Name | Description |
|---|---|---|
System.String | uldPath | The path of the requested ULD file. |
WaitForUi()
Waits for UI to become available for use.
Task WaitForUi()
Returns
System.Threading.Tasks.Task: A task that completes when the game's Present has been called at least once.
RunWhenUiPrepared<T>(Func<T>, bool)
Waits for UI to become available for use.
Task<T> RunWhenUiPrepared<T>(Func<T> func, bool runInFrameworkThread = false)
Returns
System.Threading.Tasks.Task<<T>>: A task that completes when the game's Present has been called at least once.
Parameters
| Type | Name | Description |
|---|---|---|
System.Func<<T>> | func | Function to call. |
System.Boolean | runInFrameworkThread | Specifies whether to call the function from the framework thread. |
Type Parameters
| Name | Description |
|---|---|
T | Return type. |
RunWhenUiPrepared<T>(Func<Task<T>>, bool)
Waits for UI to become available for use.
Task<T> RunWhenUiPrepared<T>(Func<Task<T>> func, bool runInFrameworkThread = false)
Returns
System.Threading.Tasks.Task<<T>>: A task that completes when the game's Present has been called at least once.
Parameters
| Type | Name | Description |
|---|---|---|
System.Func<System.Threading.Tasks.Task<<T>>> | func | Function to call. |
System.Boolean | runInFrameworkThread | Specifies whether to call the function from the framework thread. |
Type Parameters
| Name | Description |
|---|---|
T | Return type. |
CreateFontAtlas(FontAtlasAutoRebuildMode, bool, string?)
Creates an isolated Dalamud.Interface.ManagedFontAtlas.IFontAtlas.
IFontAtlas CreateFontAtlas(FontAtlasAutoRebuildMode autoRebuildMode, bool isGlobalScaled = true, string? debugName = null)
Returns
Dalamud.Interface.ManagedFontAtlas.IFontAtlas: A new instance of Dalamud.Interface.ManagedFontAtlas.IFontAtlas.
Parameters
| Type | Name | Description |
|---|---|---|
| Dalamud.Interface.ManagedFontAtlas.FontAtlasAutoRebuildMode | autoRebuildMode | Specify when and how to rebuild this atlas. |
System.Boolean | isGlobalScaled | Whether the fonts in the atlas is global scaled. |
System.String | debugName | Name for debugging purposes. |
Events
Draw
The event that gets called when Dalamud is ready to draw your windows or overlays. When it is called, you can use static ImGui calls.
event Action? Draw
Event Type
System.Action
ResizeBuffers
The event that is called when the game's DirectX device is requesting you to resize your buffers.
event Action? ResizeBuffers
Event Type
System.Action
OpenConfigUi
Event that is fired when the plugin should open its configuration interface.
event Action? OpenConfigUi
Event Type
System.Action
OpenMainUi
Event that is fired when the plugin should open its main interface.
event Action? OpenMainUi
Event Type
System.Action
ShowUi
Gets or sets an action that is called when plugin UI or interface modifications are supposed to be shown. These may be fired consecutively.
event Action? ShowUi
Event Type
System.Action
HideUi
Gets or sets an action that is called when plugin UI or interface modifications are supposed to be hidden. These may be fired consecutively.
event Action? HideUi
Event Type
System.Action
DefaultGlobalScaleChanged
Invoked when the default global scale used by ImGui has been changed through Dalamud.
event Action? DefaultGlobalScaleChanged
Event Type
System.Action
DefaultFontChanged
Invoked when the default font used by ImGui has been changed through Dalamud.
event Action? DefaultFontChanged
Event Type
System.Action
DefaultStyleChanged
Invoked when either the currently chosen style in Dalamud or a style or color variable within the currently chosen style has been changed through Dalamud.
event Action? DefaultStyleChanged
Event Type
System.Action