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
Derived:
Dalamud.Interface.UiBuilder
Properties​
DefaultFontHandle​
Gets the handle to the default Dalamud font - supporting all game languages and icons.
IFontHandle DefaultFontHandle { get; }
Remarks​
A font handle corresponding to this font can be obtained with:
fontAtlas.NewDelegateFontHandle(
e => e.OnPreBuild(
tk => tk.AddDalamudDefaultFont(UiBuilder.DefaultFontSizePx)));
IconFontHandle​
Gets the default Dalamud icon font based on FontAwesome 5 Free solid.
IFontHandle IconFontHandle { get; }
Remarks​
A font handle corresponding to this font can be obtained with:
fontAtlas.NewDelegateFontHandle(
e => e.OnPreBuild(
tk => tk.AddFontAwesomeIconFont(new() { SizePt = UiBuilder.DefaultFontSizePt })));
// or use
tk => tk.AddFontAwesomeIconFont(new() { SizePx = UiBuilder.DefaultFontSizePx })));
MonoFontHandle​
Gets the default Dalamud monospaced font based on Inconsolata Regular.
IFontHandle MonoFontHandle { get; }
Remarks​
A font handle corresponding to this font can be obtained with:
fontAtlas.NewDelegateFontHandle(
e => e.OnPreBuild(
tk => tk.AddDalamudAssetFont(
DalamudAsset.InconsolataRegular,
new() { SizePt = UiBuilder.DefaultFontSizePt })));
// or use
new() { SizePx = UiBuilder.DefaultFontSizePx })));
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.
Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.
ImFontPtr FontDefault { get; }
FontIcon​
Gets the default Dalamud icon font based on FontAwesome 5 Free solid.
Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.
ImFontPtr FontIcon { get; }
FontMono​
Gets the default Dalamud monospaced font based on Inconsolata Regular.
Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.
ImFontPtr FontMono { get; }
FontIconFixedWidth​
Gets the default Dalamud icon font based on FontAwesome 5 Free solid with a fixed width and vertically centered glyphs.
Accessing this static property outside of Dalamud.Interface.IUiBuilder.Draw is dangerous and not supported.
ImFontPtr FontIconFixedWidth { get; }
DeviceHandle​
Gets the game's active Direct3D device.
nint DeviceHandle { get; }
Remarks​
Use
<a href="https://learn.microsoft.com/en-us/windows/win32/api/unknwn/nf-unknwn-iunknown-queryinterface(q)">
QueryInterface</a> with IID of IID_ID3D11Device if you want to ensure that the interface type contained
within is indeed an instance of ID3D11Device.
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. |
Remarks​
Use this to create extra font atlases, if you want to create and dispose fonts without having to rebuild all other fonts together.
If <code class="paramref">autoRebuildMode</code> is not Dalamud.Interface.ManagedFontAtlas.FontAtlasAutoRebuildMode.OnNewFrame, the font rebuilding functions must be called manually.
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
Remarks​
Fonts will generally not have finished rebuilding when this is invoked, so if you need to access the font you should subscribe to Dalamud.Interface.Internal.InterfaceManager.DefaultFontHandle.ImFontChanged instead.
DefaultFontChanged​
Invoked when the default font used by ImGui has been changed through Dalamud.
event Action? DefaultFontChanged
Event Type​
System.Action
Remarks​
Fonts will generally not have finished rebuilding when this is invoked, so if you need to access the font you should subscribe to Dalamud.Interface.Internal.InterfaceManager.DefaultFontHandle.ImFontChanged instead.
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