docs
Loading...
Searching...
No Matches
ultralight

Overview

Root namespace for every public Ultralight type, function, and enumeration.

Namespaces

namespace  dom
 Direct C++ access to modify page elements and handle events.
namespace  js
 Type-checked JavaScript bridge between C++ and web pages.
namespace  KeyCodes
 Namespace containing all the key-code definitions for KeyboardEvent.

Classes

class  Anchor
 Placement of a floating panel in a window. More...
class  App
 Main application singleton (use this if you want to let the library manage window creation). More...
class  AppListener
 Interface for all App-related events. More...
struct  AudioFormat
 An audio sample format (channel count and sample rate). More...
class  AudioOutput
 User-defined audio output interface. More...
struct  BackdropOptions
 Optional settings for a backdrop material. More...
class  Bitmap
 A container for pixel data. More...
struct  BitmapFormatInfo
 Block geometry for a BitmapFormat. More...
class  BitmapSurface
 The default surface implementation, backed by a bitmap. More...
class  Buffer
 A fixed-size container for raw byte data. More...
class  Clipboard
 User-defined clipboard interface. More...
class  ClipboardData
 Clipboard contents, stored as multiple type representations of the same data. More...
class  ClipboardValue
 A single clipboard value: empty, UTF-8 text, or raw bytes. More...
class  Color
 An RGBA color value in a certain color space (with CSS parsing helpers). More...
struct  Command
 A command to execute on the GPU. More...
struct  CommandList
 List of commands to execute on the GPU. More...
struct  CompositionRange
 A range of characters within a composition's text (see CompositionSegment and Editor::SetComposition()). More...
struct  CompositionSegment
 Styling for one segment of a composition's text (see Editor::SetComposition()). More...
struct  Config
 Core configuration for the renderer. More...
class  ConsoleMessage
 Interface for console messages. More...
class  Container
 A layout node that organizes child nodes into a row or column. More...
struct  ContainerOptions
 Configuration options for a row or column container. More...
struct  ContainerSpec
 A container element inside a Build()/BuildLayout() expression. More...
struct  CreateThreadResult
 Result of creating a new thread. More...
struct  DiagnosticsConfig
 Diagnostics and logging options. More...
struct  DividerStyle
 Line thickness, colors, and grab width for draggable pane dividers. More...
class  DownloadListener
 User-defined interface to handle downloads for a View. More...
struct  EditableState
 The conditions that decide whether an input method should be active. More...
class  Editor
 Text-editing interface for a View. More...
class  EditorListener
 User-defined interface to handle editing events for a View. More...
class  FileSystem
 User-defined file system interface. More...
class  Flex
 A share of a container's free space distributed among siblings. More...
class  FontFile
 Represents a font file, either on-disk path or in-memory file contents. More...
class  FontLoader
 User-defined font loader interface. More...
class  Foreground
 Floating layer that displays panels above a window's layout. More...
struct  ForegroundPanelOptions
 Configuration options for a floating panel. More...
class  GamepadAxisEvent
 Event representing a change in gamepad axis state (eg, pressing a stick in a certain direction). More...
class  GamepadButtonEvent
 Event representing a change in gamepad button state (eg, pressing a button on a gamepad). More...
class  GamepadEvent
 Event representing a change in gamepad connection state. More...
struct  GCInfo
 A snapshot of the JavaScript heap's state (see Renderer::gc_status()). More...
class  GCListener
 User-defined interface to observe and control the Renderer's JavaScript garbage collections. More...
struct  GPUDeviceCaps
 Optional capabilities reported by a GPUDriver. More...
class  GPUDriver
 User-defined GPU driver interface. More...
struct  GPUMemoryStats
 GPU memory statistics reported by the App's GPU driver. More...
struct  GPUState
 The state of the GPU for a given draw command. More...
struct  HitTestRegion
 An area of a custom-chrome window and what it does. More...
struct  HolderTraits
 Traits template that lets the library hold objects through custom smart pointers. More...
class  ImageSource
 User-defined image source to display custom images on a web-page. More...
class  ImageSourceListener
 Listener for ImageSource events. More...
class  ImageSourceProvider
 Maps image sources to string identifiers. More...
class  ImageSourceProviderListener
 Listener for ImageSourceProvider events. More...
struct  IndexBuffer
 Index buffer description. More...
struct  InsertPosition
 Position relative to an existing sibling in a container. More...
struct  IntRect
 Integer Rectangle Helper. More...
struct  is_string_type
 Trait to check if a type is a supported string-like type. More...
struct  is_string_type< const char * >
struct  is_string_type< std::string >
struct  is_string_type< std::string_view >
struct  is_string_type< String >
class  JSContext
 This class wraps a JSContextRef (a JavaScript execution context for use with JavaScriptCore) and locks the context on the current thread for the duration of its lifetime. More...
class  JSON
 JSON document or value for structured data. More...
class  JSONArray
 A view of a JSON array. More...
class  JSONObject
 Typed view of a JSON object for checking keys and stepping through its members. More...
class  KeyEvent
 Keyboard event representing a change in keyboard state. More...
class  LayoutCallback
 Scoped handle that controls how long a layout callback stays registered. More...
class  LayoutNode
 Base class for Panels and Containers in a window layout tree. More...
class  Length
 A distance or size constraint in an AppCore layout. More...
class  LoadListener
 User-defined interface to handle load-related events for a View. More...
class  Lock
 Lightweight mutex optimized for short locking periods. More...
class  LockedPixels
 Forward declaration for the LockedPixels class. More...
class  Logger
 User-defined logging interface. More...
struct  Matrix
 Transformation Matrix helper. More...
struct  Matrix4x4
 4x4 Matrix Helper More...
class  Monitor
 A platform-specific monitor. More...
class  MouseEvent
 Mouse event representing a change in mouse state. More...
class  NetworkListener
 User-defined interface to handle network requests for a View. More...
class  NetworkRequest
 Interface for Network requests. More...
class  OriginRules
 A list of origin patterns that controls which pages get an attached API. More...
class  Panel
 A layout node that hosts a single web view. More...
struct  PanelOptions
 Configuration options for a panel in a row or column. More...
struct  PanelSpec
 A panel element inside a Build()/BuildLayout() expression. More...
class  Platform
 Global platform singleton, manages user-defined platform handlers and global config. More...
class  Profiler
 User-defined profiling interface. More...
struct  Rect
 Float Rectangle Helper. More...
class  RefCounted
 Interface for all ref-counted objects that will be managed using the RefPtr<> smart pointer. More...
class  RefCountedImpl
class  RefPtr
 A nullable smart pointer. More...
struct  RenderBuffer
 Render buffer description. More...
class  Renderer
 Core renderer singleton for the library, coordinates all library functions. More...
struct  RenderTarget
 Offscreen render target, used when rendering Views via the GPU renderer. More...
struct  RoundedRect
 Rounded Rectangle Helper. More...
class  ScrollEvent
 Scroll event representing a change in scroll state. More...
class  Session
 Storage for a browsing session (cookies, local storage, etc.). More...
struct  Settings
 App-specific settings. More...
class  Size
 Fixed, percentage, and flexible sizes for panels and containers. More...
class  String
 Unicode string container with conversions for UTF-8, UTF-16, and UTF-32. More...
class  String16
 A null-terminated UTF-16 string container. More...
class  String16Vector
 A UTF-16 string vector. More...
class  String32
 A null-terminated UTF-32 string container. More...
class  String8
 A null-terminated UTF-8 string container. More...
class  Surface
 User-defined pixel buffer surface. More...
class  SurfaceFactory
 User-defined factory to provide your own surface implementation. More...
class  ThreadFactory
 User-defined factory for creating new threads. More...
class  TimerHandle
 Handle to a repeating timer created with App::SetInterval(). More...
class  URL
 Parsed web address. More...
struct  vec2
 2D Vector Helper More...
struct  vec3
 3D Vector Helper More...
struct  vec4
 4D Vector Helper More...
class  Vector
 A std::vector-like container with small buffer optimization and ABI-safe allocation. More...
struct  Vertex_2f_2ui
 Vertex layout for instance vertices. More...
struct  Vertex_2f_4ub_2f
 Vertex layout for path vertices. More...
struct  Vertex_2f_4ub_2f_2f_28f
 Vertex layout for quad vertices. More...
struct  VertexBuffer
 Vertex buffer description. More...
class  View
 Web-page container rendered to an offscreen surface. More...
struct  ViewConfig
 View-specific configuration settings. More...
class  ViewListener
 User-defined interface to handle general events for a View. More...
class  WeakControlBlock
 Internal bookkeeping object that tracks the liveness of a weakly-referenced object.
class  WeakPtr
 A weak (non-owning) smart pointer that observes a WeakRefCounted object. More...
class  WeakRefCounted
 Interface for ref-counted objects that can additionally be observed via the WeakPtr<> smart pointer. More...
class  Window
 A native OS window that displays web content. More...
class  WindowListener
 Interface for all Window-related events. More...

Concepts

concept  BitmaskEnum
 Whether or not a scoped enum has opted into the bitmask operators below by declaring consteval void ul_enable_bitmask_operators(E); beside its definition (found by argument-dependent lookup).
concept  LayoutBuildable
 A builder element (see <AppCore/layout/Builder.h>): anything that can append itself to a container.

Typedefs

typedef void(*) LayoutDestroyUserDataCallback(void *user_data)
 Destroy hook for a callback registration's user data.
typedef void(*) LayoutNodeCallback(void *user_data, LayoutNode *node)
 Callback fired for a layout node event.
typedef void(*) LayoutPanelCallback(void *user_data, Panel *panel)
 Callback fired for a panel event.
typedef void(*) LayoutFocusCallback(void *user_data, Window *window, Panel *focused)
 Callback fired when a window's focused panel changes.
typedef void(*) LayoutEditableStateCallback(void *user_data, Window *window, Panel *panel, const EditableState &state)
 Callback fired when the focused panel's editable state changes.
typedef void(*) LayoutOverrideCallback(void *user_data, Container *container, Rect content_box)
 Layout delegate, called to place a container's children yourself.
typedef void(*) DestroyBitmapCallback(void *user_data, void *data)
 Function signature for a user-defined destruction callback to be optionally called when the Bitmap is destroyed.
typedef void(*) DestroyBufferCallback(void *user_data, void *data)
 Function signature for a user-defined destruction callback to optionally be called when Buffer is destroyed.
typedef vec2 Point
 Point is typedef'd to a 2D vector.
typedef uint32_t DownloadId
 A unique ID for a download (see DownloadListener::NextDownloadId()).
using LockHolder = std::lock_guard<Lock>
using AudioStreamFormat = AudioFormat
 The format of a new audio stream (the same as AudioFormat).
typedef uint32_t IndexType
 Vertex index type.
typedef uint32_t ThreadId
 Unique id of the thread, used for referencing the created thread later.
typedef uint64_t ThreadHandle
 Platform-specific handle.
typedef void(*) ThreadEntryPoint(void *)
 Entry point for the thread, this function should be called by the thread once it is active and should be passed entry_point_data as the argument.
typedef detail::selector< sizeof(wchar_t)>::Char16 Char16
 We use wchar_t if size == 2, otherwise use char16_t.

Enumerations

enum class  DialogIcon { Info , Warning , Error , Question }
 Enum representing the icon to be displayed in a dialog. More...
enum class  ButtonType { OK , OKCancel , YesNo }
 Enum representing the button types in a dialog. More...
enum class  ButtonResult { OK , Cancel , Yes , No }
 Enum representing the result of a dialog button press. More...
enum class  AnchorCorner : uint8_t { TopLeft = 0 , TopRight , BottomLeft , BottomRight }
 A window corner. More...
enum class  AnchorAlign : uint8_t { Start = 0 , Center , End }
 Cross-axis alignment of a floating panel against its anchor rect. More...
enum class  AnchorFit : uint8_t { None = 0 , Flip }
 Fit behavior when an anchored floating panel does not fit on its preferred side. More...
enum class  Dismiss : uint8_t { Manual = 0 , Auto = 1 }
 Auto-dismiss policy for floating panels and popup windows. More...
enum class  FocusPolicy : uint8_t { Auto = 0 , Grab = 1 , None = 2 }
 Keyboard focus policy for a floating panel. More...
enum class  BackdropMaterial : uint8_t { None = 0 , Window = 1 , Popup = 2 , Overlay = 3 }
 The native backdrop materials a window can use. More...
enum class  BackdropState : uint8_t { FollowWindow = 0 , Active = 1 , Inactive = 2 }
 Whether a backdrop material shows its active or inactive look. More...
enum class  BackdropVariant : uint8_t { Auto = 0 , Frosted = 1 , Matte = 2 }
 The look of a backdrop material. More...
enum class  BackdropTheme : uint8_t { Auto = 0 , Light = 1 , Dark = 2 }
 The light or dark look of a backdrop material. More...
enum class  BackdropRendition : uint8_t { Auto = 0 , Standard = 1 , Vivid = 2 }
 The style of an opaque BackdropMaterial::Window. More...
enum class  WindowState : uint8_t { Normal = 0 , Minimized = 1 , Maximized = 2 }
 The window's current display state. More...
enum class  CornerStyle : uint8_t { Default = 0 , Rounded = 1 , Square = 2 }
 The window's corner style. More...
enum class  WindowFlags : uint16_t {
  None = 0 , Borderless = 1 << 0 , Titled = 1 << 1 , Resizable = 1 << 2 ,
  Maximizable = 1 << 3 , Hidden = 1 << 4 , Transparent = 1 << 5 , Popup = 1 << 6 ,
  CustomChrome = 1 << 7
}
 Window creation flags (combine with |). More...
enum class  HitRegionRole : uint8_t { Caption = 0 , Minimize = 1 , Maximize = 2 , Close = 3 }
 What a hit-test region does. More...
enum class  ResizeEdge : uint8_t {
  Left = 0 , Top , Right , Bottom ,
  TopLeft , TopRight , BottomLeft , BottomRight
}
 The edge or corner to resize a window from. More...
enum class  WindowButtons : uint8_t {
  None = 0 , Minimize = 1 << 0 , Maximize = 1 << 1 , Close = 1 << 2 ,
  All = 0x7
}
 The window actions available to the user (combine with |). More...
enum class  BitmapFormat : uint8_t {
  A8_UNORM , BGRA8_UNORM_SRGB , RG8_UNORM , BC1_UNORM ,
  BC2_UNORM , BC3_UNORM , BC7_UNORM , RGBA16F ,
  RGBA16UI , RGBA32F
}
 The various Bitmap formats. More...
enum  MessageSource {
  kMessageSource_XML = 0 , kMessageSource_JS , kMessageSource_Network , kMessageSource_ConsoleAPI ,
  kMessageSource_Storage , kMessageSource_AppCache , kMessageSource_Rendering , kMessageSource_CSS ,
  kMessageSource_Security , kMessageSource_ContentBlocker , kMessageSource_Media , kMessageSource_MediaSource ,
  kMessageSource_WebRTC , kMessageSource_ITPDebug , kMessageSource_PrivateClickMeasurement , kMessageSource_PaymentRequest ,
  kMessageSource_Other , kMessageSource_NativeAPI
}
 MessageSource types. More...
enum  MessageType {
  kMessageType_Log = 0 , kMessageType_Dir , kMessageType_DirXML , kMessageType_Table ,
  kMessageType_Trace , kMessageType_StartGroup , kMessageType_StartGroupCollapsed , kMessageType_EndGroup ,
  kMessageType_Clear , kMessageType_Assert , kMessageType_Timing , kMessageType_Profile ,
  kMessageType_ProfileEnd , kMessageType_Image
}
 The type of console message (corresponds to the console API method that triggered it). More...
enum  MessageLevel {
  kMessageLevel_Log = 0 , kMessageLevel_Warning , kMessageLevel_Error , kMessageLevel_Debug ,
  kMessageLevel_Info
}
 MessageLevel types. More...
enum class  DiagnosticsLevel : uint8_t { Off = 0 , Warn , Strict , Auto }
 How much checking and warning the library does for mistakes made through one of its APIs. More...
enum class  EditorCommand : uint8_t {
  Cut = 0 , Copy , Paste , PasteAsPlainText ,
  SelectAll , Undo , Redo , MoveLeft ,
  MoveRight , MoveUp , MoveDown , MoveWordLeft ,
  MoveWordRight , MoveToBeginningOfLine , MoveToEndOfLine , MoveToBeginningOfParagraph ,
  MoveToEndOfParagraph , MoveToBeginningOfDocument , MoveToEndOfDocument , MovePageUp ,
  MovePageDown , MoveLeftAndModifySelection , MoveRightAndModifySelection , MoveUpAndModifySelection ,
  MoveDownAndModifySelection , MoveWordLeftAndModifySelection , MoveWordRightAndModifySelection , MoveToBeginningOfLineAndModifySelection ,
  MoveToEndOfLineAndModifySelection , MoveToBeginningOfParagraphAndModifySelection , MoveToEndOfParagraphAndModifySelection , MoveToBeginningOfDocumentAndModifySelection ,
  MoveToEndOfDocumentAndModifySelection , MovePageUpAndModifySelection , MovePageDownAndModifySelection , SelectWord ,
  SelectLine , SelectParagraph , Unselect , DeleteBackward ,
  DeleteForward , DeleteWordBackward , DeleteWordForward , DeleteToBeginningOfLine ,
  DeleteToEndOfLine , InsertNewline , InsertLineBreak , InsertTab ,
  InsertBacktab
}
 The editing commands you can run with Editor::Execute(). More...
enum class  EditableType : uint8_t {
  None = 0 , Text , Password , TextArea ,
  ContentEditable , Other
}
 The kind of element that holds keyboard focus (see EditableState). More...
enum class  InputMode : uint8_t {
  Unspecified = 0 , None , Text , Telephone ,
  Url , Email , Numeric , Decimal ,
  Search
}
 The focused element's inputmode hint (what kind of virtual keyboard the page asks for). More...
enum class  EnterKeyHint : uint8_t {
  Unspecified = 0 , Enter , Done , Go ,
  Next , Previous , Search , Send
}
 The focused element's enterkeyhint (what label or icon the Enter key should present). More...
enum class  CodeDropMode : uint8_t { Nothing , Linked , All }
 How much compiled JavaScript code a collection discards. More...
enum class  HolderKind { Shared , Exclusive }
 Whether a holder shares ownership of a bound-class instance or owns it alone. More...
enum  Cursor {
  kCursor_Pointer = 0 , kCursor_Cross , kCursor_Hand , kCursor_IBeam ,
  kCursor_Wait , kCursor_Help , kCursor_EastResize , kCursor_NorthResize ,
  kCursor_NorthEastResize , kCursor_NorthWestResize , kCursor_SouthResize , kCursor_SouthEastResize ,
  kCursor_SouthWestResize , kCursor_WestResize , kCursor_NorthSouthResize , kCursor_EastWestResize ,
  kCursor_NorthEastSouthWestResize , kCursor_NorthWestSouthEastResize , kCursor_ColumnResize , kCursor_RowResize ,
  kCursor_MiddlePanning , kCursor_EastPanning , kCursor_NorthPanning , kCursor_NorthEastPanning ,
  kCursor_NorthWestPanning , kCursor_SouthPanning , kCursor_SouthEastPanning , kCursor_SouthWestPanning ,
  kCursor_WestPanning , kCursor_Move , kCursor_VerticalText , kCursor_Cell ,
  kCursor_ContextMenu , kCursor_Alias , kCursor_Progress , kCursor_NoDrop ,
  kCursor_Copy , kCursor_None , kCursor_NotAllowed , kCursor_ZoomIn ,
  kCursor_ZoomOut , kCursor_Grab , kCursor_Grabbing , kCursor_Custom
}
 The mouse cursor types (see ViewListener::OnChangeCursor()). More...
enum class  FaceWinding : uint8_t { Clockwise , CounterClockwise }
 The winding order for front-facing triangles. More...
enum class  FontHinting : uint8_t { Smooth , Normal , Monochrome , None }
 The font hinting algorithm to use when rendering glyphs. More...
enum class  FontProfile : uint8_t { Default , MacOSLike , WindowsLike , Light }
 The font-appearance preset that provides default values for the text rendering knobs (Config::font_blend_mode, Config::font_gamma, Config::font_contrast, Config::font_stem_darkening, Config::font_embolden, and the hinting behind FontHinting::Normal). More...
enum class  FontBlendMode : uint8_t { Profile , GammaCorrected , SRGB }
 How antialiased glyph edges are blended into the page. More...
enum class  EffectQuality : uint8_t { Low , Medium , High }
 The quality level for rendering effects (CSS filters, shadows, blurs, etc.). More...
enum class  MemoryProfile : uint8_t { Balanced , LowMemory , Performance }
 Memory vs. More...
enum class  MediaProfile : uint8_t { Balanced , FavorMemory , FavorPerformance }
 Memory vs. More...
enum class  VertexBufferFormat : uint8_t { _2f_4ub_2f , _2f_4ub_2f_2f_28f , _2f_2ui }
 Vertex buffer formats. More...
enum class  ShaderType : uint8_t {
  Fill , FillPath , FilterBasic , FilterBlur ,
  FilterDropShadow , FillPhoton , FillPhotonGrid
}
 Shader program types. More...
enum class  BlendFactor : uint8_t {
  Zero , One , SrcColor , InvSrcColor ,
  SrcAlpha , InvSrcAlpha , DestColor , InvDestColor ,
  DestAlpha , InvDestAlpha , SrcAlphaSaturate
}
 Blend factors that define how source and destination colors are weighted during blending. More...
enum class  BlendEquation : uint8_t {
  Add , Subtract , RevSubtract , Min ,
  Max
}
 Mathematical operations for combining source and destination colors during blending. More...
enum class  CommandType : uint8_t { ClearRenderBuffer , DrawGeometry , Flush }
 The types of commands. More...
enum  GPUCompressedFormat : uint32_t { kGPUCompressedFormat_BC1_BC3 = 1 << 0 , kGPUCompressedFormat_BC7 = 1 << 1 }
 Optional GPU compressed-texture format families. More...
enum  GPUTextureFlags : uint32_t { kGPUTextureFlag_RenderTarget = 1 << 0 , kGPUTextureFlag_Antialiased = 1 << 1 , kGPUTextureFlag_Immutable = 1 << 2 }
 Flags passed to GPUDriver::CreateTexture() that tell your driver how a texture will be used. More...
enum class  LogLevel : uint8_t {
  Fatal , Error , Warning , Info ,
  Debug
}
 The severity of a log message, from most to least severe. More...
enum class  ThreadType : uint8_t {
  Unknown = 0 , JavaScript , Compiler , GarbageCollection ,
  Network , Graphics , Audio
}
 The type of thread, you can choose to optionally handle these for better performance. More...
enum class  RecycleMode : uint8_t { Lightweight , Full }
 Controls how aggressively Renderer::Recycle() reclaims memory. More...
enum class  ColorScheme : uint8_t { Auto = 0 , Light = 1 , Dark = 2 }
 A page color scheme, as reported to pages via the prefers-color-scheme CSS media feature. More...
enum class  ClipboardReadPolicy : uint8_t { Deny = 0 , AllowForAppContent = 1 , Allow = 2 }
 Which pages may read the clipboard from script. More...

Functions

template<BitmaskEnum T>
constexpr T operator| (T a, T b)
template<BitmaskEnum T>
constexpr T operator& (T a, T b)
template<BitmaskEnum T>
constexpr T operator^ (T a, T b)
template<BitmaskEnum T>
constexpr T operator~ (T a)
template<BitmaskEnum T>
constexpr T & operator|= (T &a, T b)
template<BitmaskEnum T>
constexpr T & operator&= (T &a, T b)
template<BitmaskEnum T>
constexpr T & operator^= (T &a, T b)
template<BitmaskEnum T>
constexpr bool HasFlag (T flags, T bits)
 Whether or not every bit in bits is set in flags.
ButtonResult ShowMessageBox (const String &title, const String &message, DialogIcon icon=DialogIcon::Info, ButtonType buttons=ButtonType::OK)
 Show a modal message box with the specified title, message, icon, and buttons.
PanelSpec panel (PanelOptions options={}, RefPtr< Panel > *out=nullptr)
 Describe a panel in a builder expression (see Builder.h for an example).
template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > row (ContainerOptions options, Children... children)
 Describe a row container with child elements.
template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > row (ContainerOptions options, RefPtr< Container > *out, Children... children)
 Describe a row container, capturing the created handle in out.
template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > column (ContainerOptions options, Children... children)
 Describe a column container with child elements.
template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > column (ContainerOptions options, RefPtr< Container > *out, Children... children)
 Describe a column container, capturing the created handle in out.
InsertPosition Before (RefPtr< LayoutNode > anchor)
 Create an insertion position immediately before a sibling.
InsertPosition After (RefPtr< LayoutNode > anchor)
 Create an insertion position immediately after a sibling.
FontLoader * GetPlatformFontLoader ()
 Get the native font loader for the current platform.
FileSystem * GetPlatformFileSystem (const String &baseDir)
 Get the native file system for the current platform, creating it if it doesn't exist using the base directory provided.
Logger * GetDefaultLogger (const String &logPath)
 Get the default logger (writes the log to a file on disk).
BitmapFormatInfo GetBitmapFormatInfo (BitmapFormat format)
 Get the block geometry for a given BitmapFormat.
bool IsCompressedFormat (BitmapFormat format)
 Whether or not a given BitmapFormat is block-compressed (a BCn format).
void GetKeyIdentifierFromVirtualKeyCode (int virtual_key_code, String &key_identifier_result)
 Utility function for generating a key identifier string from a virtual key-code.
void GetKeyFromVirtualKeyCode (int virtual_key_code, bool shift, String &key_result)
 Utility function for generating a key string from a virtual key-code.
bool operator== (const Matrix &a, const Matrix &b)
bool operator!= (const Matrix &a, const Matrix &b)
bool operator== (const Matrix4x4 &a, const Matrix4x4 &b)
bool operator!= (const Matrix4x4 &a, const Matrix4x4 &b)
Profiler * CreateProfilerPerfetto (const char *path)
 Create a Profiler implementation that writes Perfetto binary traces (.perfetto-trace).
void DestroyProfilerPerfetto (Profiler *profiler)
 Destroy a Profiler created by CreateProfilerPerfetto.
SurfaceFactory * GetBitmapSurfaceFactory ()
 Get the default Bitmap Surface Factory singleton.
template<typename T>
RefPtr< T > AdoptRef (T &reference)
 Helper for wrapping new objects with the RefPtr smart pointer.
template<typename T, typename... Args>
RefPtr< T > MakeRefPtr (Args &&... args)
 Construct a new object of type T and wrap it in a RefPtr.
template<class T>
void swap (RefPtr< T > &a, RefPtr< T > &b)
template<class T>
void swap (WeakPtr< T > &a, WeakPtr< T > &b)
template<typename T, typename U>
bool operator== (const RefPtr< T > &a, const RefPtr< U > &b)
template<typename T, typename U>
bool operator== (const RefPtr< T > &a, const U *b)
template<typename T, typename U>
bool operator== (const T *a, const RefPtr< U > &b)
template<typename T, typename U>
bool operator!= (const RefPtr< T > &a, const RefPtr< U > &b)
template<typename T, typename U>
bool operator!= (const RefPtr< T > &a, const U *b)
template<typename T, typename U>
bool operator!= (const T *a, const RefPtr< U > &b)
template<typename To = void, typename From>
auto Convert (const From &from)
 Convert between string types.
template<typename T, size_t N>
void swap (Vector< T, N > &a, Vector< T, N > &b)

Typedef Documentation

◆ AudioStreamFormat

The format of a new audio stream (the same as AudioFormat).

◆ Char16

typedef detail::selector<sizeof(wchar_t)>::Char16 Char16

We use wchar_t if size == 2, otherwise use char16_t.

◆ DestroyBitmapCallback

typedef void(*) DestroyBitmapCallback(void *user_data, void *data)

Function signature for a user-defined destruction callback to be optionally called when the Bitmap is destroyed.

Parameters
user_dataPointer to user-defined user-data (this will be the same value as what was passed to Bitmap::Create, if any)
dataPointer to raw Bitmap pixel data.

◆ DestroyBufferCallback

typedef void(*) DestroyBufferCallback(void *user_data, void *data)

Function signature for a user-defined destruction callback to optionally be called when Buffer is destroyed.

Users can use this to deallocate any data associated with the Buffer.

Parameters
user_dataPointer to user-defined user-data (this will be the same value as what was passed to Buffer::Create, if any)
dataPointer to raw Buffer data.

◆ DownloadId

typedef uint32_t DownloadId

A unique ID for a download (see DownloadListener::NextDownloadId()).

◆ IndexType

typedef uint32_t IndexType

Vertex index type.

◆ LayoutDestroyUserDataCallback

typedef void(*) LayoutDestroyUserDataCallback(void *user_data)

Destroy hook for a callback registration's user data.

Parameters
user_dataThe user data you passed to the registration method.
Note
This is invoked exactly once, when the registration finally drops the user data. It is never invoked while the callback itself is executing.

◆ LayoutEditableStateCallback

typedef void(*) LayoutEditableStateCallback(void *user_data, Window *window, Panel *panel, const EditableState &state)

Callback fired when the focused panel's editable state changes.

Parameters
user_dataThe user data you passed to the registration method.
windowThe window the state belongs to.
panelThe panel the state describes (can be null when nothing holds panel focus).
stateThe new editable state.
See also
Window::OnEditableStateChange()

◆ LayoutFocusCallback

typedef void(*) LayoutFocusCallback(void *user_data, Window *window, Panel *focused)

Callback fired when a window's focused panel changes.

Parameters
user_dataThe user data you passed to the registration method.
windowThe window whose focus changed.
focusedThe newly focused panel (can be null when nothing holds panel focus).
See also
Window::OnFocusChange()

◆ LayoutNodeCallback

typedef void(*) LayoutNodeCallback(void *user_data, LayoutNode *node)

Callback fired for a layout node event.

Parameters
user_dataThe user data you passed to the registration method.
nodeThe node the event is for.
See also
LayoutNode::OnLayoutChange()

◆ LayoutOverrideCallback

typedef void(*) LayoutOverrideCallback(void *user_data, Container *container, Rect content_box)

Layout delegate, called to place a container's children yourself.

Parameters
user_dataThe user data you passed to the registration method.
containerThe container being laid out.
content_boxThe container's content box, in container-local logical pixels.
See also
Container::SetLayoutOverride()

◆ LayoutPanelCallback

typedef void(*) LayoutPanelCallback(void *user_data, Panel *panel)

Callback fired for a panel event.

Parameters
user_dataThe user data you passed to the registration method.
panelThe panel the event is for.
See also
Panel::OnDismiss()

◆ LockHolder

using LockHolder = std::lock_guard<Lock>

◆ Point

typedef vec2 Point

Point is typedef'd to a 2D vector.

◆ ThreadEntryPoint

typedef void(*) ThreadEntryPoint(void *)

Entry point for the thread, this function should be called by the thread once it is active and should be passed entry_point_data as the argument.

◆ ThreadHandle

typedef uint64_t ThreadHandle

Platform-specific handle.

  • on Windows this is HANDLE
  • on POSIX this is pthread_t

◆ ThreadId

typedef uint32_t ThreadId

Unique id of the thread, used for referencing the created thread later.

  • on Windows this should be the thread identifier (not the HANDLE that _beginthreadex() returns): the id _beginthreadex() writes through its thrdaddr out-parameter, or GetCurrentThreadId() called on the new thread
  • on POSIX this can be whatever unique id you want

Enumeration Type Documentation

◆ AnchorAlign

enum class AnchorAlign : uint8_t
strong

Cross-axis alignment of a floating panel against its anchor rect.

See also
Anchor::Align()
Enumerator
Start 
Center 
End 

◆ AnchorCorner

enum class AnchorCorner : uint8_t
strong

A window corner.

See also
Anchor::WindowCorner()
Enumerator
TopLeft 
TopRight 
BottomLeft 
BottomRight 

◆ AnchorFit

enum class AnchorFit : uint8_t
strong

Fit behavior when an anchored floating panel does not fit on its preferred side.

See also
Anchor::Fit()
Enumerator
None 
Flip 

◆ BackdropMaterial

enum class BackdropMaterial : uint8_t
strong

The native backdrop materials a window can use.

See also
Window::SetBackdrop()

Choose the material that matches what your window is (a main window, a menu, or an overlay). The OS decides how each one looks.

Enumerator
None 

No material.

Window 

For a main window.

Popup 

For menus, dropdowns, and other flyouts.

Overlay 

For heads-up panels and on-screen displays (eg, a volume indicator).

◆ BackdropRendition

enum class BackdropRendition : uint8_t
strong

The style of an opaque BackdropMaterial::Window.

See also
Window::SetBackdrop()

Only Windows has more than one: most windows use the standard style, and Windows' own tabbed apps (eg, File Explorer) use a more colorful one. Other platforms ignore this.

Enumerator
Auto 

The platform default (Standard).

Standard 

The style most windows use.

Vivid 

The more colorful style, with more of the wallpaper's color.

◆ BackdropState

enum class BackdropState : uint8_t
strong

Whether a backdrop material shows its active or inactive look.

See also
Window::SetBackdropState()
Enumerator
FollowWindow 

Match the window: the active look while the window is active.

Active 

Always show the active look.

Inactive 

Always show the inactive look.

◆ BackdropTheme

enum class BackdropTheme : uint8_t
strong

The light or dark look of a backdrop material.

See also
Window::SetBackdrop()
Enumerator
Auto 

Follow the OS theme.

Light 

Always use the light look.

Dark 

Always use the dark look.

◆ BackdropVariant

enum class BackdropVariant : uint8_t
strong

The look of a backdrop material.

See also
Window::SetBackdrop()
Enumerator
Auto 

The platform's usual look for the material.

Frosted 

Translucent: a live blur of what's behind the window.

Matte 

Opaque: tinted by the desktop wallpaper and theme.

◆ BitmapFormat

enum class BitmapFormat : uint8_t
strong

The various Bitmap formats.

Enumerator
A8_UNORM 

Alpha channel only, 8-bits per pixel.

Encoding: 8-bits per channel, unsigned normalized.

Color-space: Linear (no gamma), alpha-coverage only.

BGRA8_UNORM_SRGB 

Blue Green Red Alpha channels, 32-bits per pixel.

Encoding: 8-bits per channel, unsigned normalized.

Color-space: sRGB gamma with premultiplied linear alpha channel.

RG8_UNORM 

Red Green channels, 16-bits per pixel.

Encoding: 8-bits per channel, unsigned normalized.

Color-space: Linear (no gamma).

Not PNG-encodable.

BC1_UNORM 

BC1 block-compressed color (4x4 blocks, 8 bytes/block).

Optional 1-bit alpha.

Color-space: sRGB gamma with optional alpha.

BC2_UNORM 

BC2 block-compressed color (4x4 blocks, 16 bytes/block).

Explicit 4-bit alpha.

Color-space: sRGB gamma with premultiplied alpha.

BC3_UNORM 

BC3 block-compressed color (4x4 blocks, 16 bytes/block).

Interpolated alpha.

Color-space: sRGB gamma with premultiplied alpha.

BC7_UNORM 

BC7 block-compressed color (4x4 blocks, 16 bytes/block).

High-quality RGB(A).

Color-space: sRGB gamma with premultiplied alpha.

RGBA16F 

Four half-precision float channels (16 bits per channel, 64 bits per pixel).

This is a raw data format: GPUDriver should create these as sampleable textures without filtering or mipmaps and upload rows exactly as stored.

RGBA16UI 

Four unsigned integer channels (16 bits per channel, 64 bits per pixel).

This is a raw data format: GPUDriver should create these as sampleable textures without filtering or mipmaps and upload rows exactly as stored.

RGBA32F 

Four float channels (32 bits per channel, 128 bits per pixel).

This is a raw data format: GPUDriver should create these as sampleable textures without filtering or mipmaps and upload rows exactly as stored.

◆ BlendEquation

enum class BlendEquation : uint8_t
strong

Mathematical operations for combining source and destination colors during blending.

This defines how the GPU combines the weighted source and destination colors after they've been multiplied by their respective blend factors.

Enumerator
Add 

Result = (Src * SrcFactor) + (Dest * DestFactor) Standard additive blending - most common operation.

Subtract 

Result = (Src * SrcFactor) - (Dest * DestFactor) Subtractive blending - source reduces destination.

RevSubtract 

Result = (Dest * DestFactor) - (Src * SrcFactor) Reverse subtractive blending - destination reduces source.

Min 

Result = min(Src, Dest) - takes darker/smaller value Note: Ignores blend factors, compares colors directly.

Max 

Result = max(Src, Dest) - takes lighter/larger value Note: Ignores blend factors, compares colors directly.

◆ BlendFactor

enum class BlendFactor : uint8_t
strong

Blend factors that define how source and destination colors are weighted during blending.

These factors control how much the source color (from the pixel shader) and destination color (from the render buffer) contribute to the final blended result.

For each color channel, the blend equation combines colors as: Result = (SourceColor * SourceFactor) [op] (DestColor * DestFactor) where [op] is defined by BlendEquation.

Enumerator
Zero 

Factor of (0, 0, 0, 0) - completely removes this color's contribution.

One 

Factor of (1, 1, 1, 1) - uses this color at full intensity.

SrcColor 

Source-based factors (use the incoming pixel shader output).

Factor of (Rs, Gs, Bs, As) - multiply by source color components

InvSrcColor 

Factor of (1-Rs, 1-Gs, 1-Bs, 1-As) - multiply by inverse source color.

SrcAlpha 

Factor of (As, As, As, As) - multiply all channels by source alpha.

InvSrcAlpha 

Factor of (1-As, 1-As, 1-As, 1-As) - multiply by inverse source alpha.

DestColor 

Destination-based factors (use the existing render buffer color).

Factor of (Rd, Gd, Bd, Ad) - multiply by destination color components

InvDestColor 

Factor of (1-Rd, 1-Gd, 1-Bd, 1-Ad) - multiply by inverse dest color.

DestAlpha 

Factor of (Ad, Ad, Ad, Ad) - multiply all channels by destination alpha.

InvDestAlpha 

Factor of (1-Ad, 1-Ad, 1-Ad, 1-Ad) - multiply by inverse dest alpha.

SrcAlphaSaturate 

Special factors.

Factor of (f, f, f, 1) where f = min(As, 1-Ad). Useful for additive blending that doesn't oversaturate the destination alpha channel.

◆ ButtonResult

enum class ButtonResult
strong

Enum representing the result of a dialog button press.

Enumerator
OK 

"OK" button was pressed

Cancel 

"Cancel" button was pressed

Yes 

"Yes" button was pressed

No 

"No" button was pressed

◆ ButtonType

enum class ButtonType
strong

Enum representing the button types in a dialog.

Enumerator
OK 

Single "OK" button.

OKCancel 

"OK" and "Cancel" buttons

YesNo 

"Yes" and "No" buttons

◆ ClipboardReadPolicy

enum class ClipboardReadPolicy : uint8_t
strong

Which pages may read the clipboard from script.

See also
ViewConfig::clipboard_read_policy
Enumerator
Deny 

Refuse every script-initiated clipboard read.

AllowForAppContent 

Grant reads from your application's own content only.

Allow 

Grant reads from any page.

◆ CodeDropMode

enum class CodeDropMode : uint8_t
strong

How much compiled JavaScript code a collection discards.

Compiled code keeps some JavaScript objects alive, so discarding it lets a collection free more memory. Pages then run slower for a while as their code is compiled again.

Enumerator
Nothing 

Keep all compiled code.

Linked 

Discard compiled code but keep parsed scripts (pages recompile but don't re-parse).

All 

Discard compiled code and parsed scripts (pages re-parse and recompile).

◆ ColorScheme

enum class ColorScheme : uint8_t
strong

A page color scheme, as reported to pages via the prefers-color-scheme CSS media feature.

See also
ViewConfig::preferred_color_scheme
View::set_preferred_color_scheme()
Renderer::set_system_color_scheme()
Enumerator
Auto 

Follow the system color scheme set on the Renderer.

Light 

Always report a light color scheme.

Dark 

Always report a dark color scheme.

◆ CommandType

enum class CommandType : uint8_t
strong

The types of commands.

This enumeration describes the type of command to execute on the GPU.

See also
Command
Enumerator
ClearRenderBuffer 

Clear the specified render buffer.

DrawGeometry 

Draw the specified geometry to the specified render buffer.

Flush 

Submit pending GPU work before executing the next command.

Emitted before the library draws into a render buffer whose texture was sampled by earlier draws in the same command list. What to do:

  • Direct3D 12 / Metal / Vulkan: usually a no-op; your per-resource barriers or transitions already order these accesses. Verify that ordering covers clears as well as draws.
  • Direct3D 11 / OpenGL: submit pending work (Flush() / glFlush()). Some drivers otherwise reorder the pending sampling draws against the upcoming clear and draws, producing intermittent dropouts in the sampled output.
Note
No fields of GPUState are meaningful on a Flush command.

◆ CornerStyle

enum class CornerStyle : uint8_t
strong

The window's corner style.

See also
Window::SetCornerStyle()

By default, framed windows, custom-chrome windows, and popups get rounded corners, and other transparent windows get square ones. Linux leaves corners to the window manager.

Note
On windows that draw their own frame (custom-chrome and transparent windows), the system shadow comes with the rounded corners: squaring them removes the shadow too.
Enumerator
Default 

The platform's usual corners for this kind of window.

Rounded 

Rounded corners.

Square 

Square corners.

◆ Cursor

enum Cursor

The mouse cursor types (see ViewListener::OnChangeCursor()).

Enumerator
kCursor_Pointer 
kCursor_Cross 
kCursor_Hand 
kCursor_IBeam 
kCursor_Wait 
kCursor_Help 
kCursor_EastResize 
kCursor_NorthResize 
kCursor_NorthEastResize 
kCursor_NorthWestResize 
kCursor_SouthResize 
kCursor_SouthEastResize 
kCursor_SouthWestResize 
kCursor_WestResize 
kCursor_NorthSouthResize 
kCursor_EastWestResize 
kCursor_NorthEastSouthWestResize 
kCursor_NorthWestSouthEastResize 
kCursor_ColumnResize 
kCursor_RowResize 
kCursor_MiddlePanning 
kCursor_EastPanning 
kCursor_NorthPanning 
kCursor_NorthEastPanning 
kCursor_NorthWestPanning 
kCursor_SouthPanning 
kCursor_SouthEastPanning 
kCursor_SouthWestPanning 
kCursor_WestPanning 
kCursor_Move 
kCursor_VerticalText 
kCursor_Cell 
kCursor_ContextMenu 
kCursor_Alias 
kCursor_Progress 
kCursor_NoDrop 
kCursor_Copy 
kCursor_None 
kCursor_NotAllowed 
kCursor_ZoomIn 
kCursor_ZoomOut 
kCursor_Grab 
kCursor_Grabbing 
kCursor_Custom 

◆ DiagnosticsLevel

enum class DiagnosticsLevel : uint8_t
strong

How much checking and warning the library does for mistakes made through one of its APIs.

Warnings go to the Logger at LogLevel::Warning, tagged with the API they came from (eg, [js], [dom], [data]), and to the page's console when a page is involved.

See also
DiagnosticsConfig
Enumerator
Off 

No per-operation warnings (a mistake the library only finds once, like an invalid setup call, still warns).

Warn 

Development warnings about each mistake as it happens.

Strict 

Everything Warn reports, plus stricter checks (eg, a lossy argument conversion in a JavaScript binding becomes a TypeError, and every DOM call on an empty handle warns).

Auto 

Warn when DiagnosticsConfig::developer_mode is on, Off when it's off.

◆ DialogIcon

enum class DialogIcon
strong

Enum representing the icon to be displayed in a dialog.

Enumerator
Info 

Information icon.

Warning 

Warning icon.

Error 

Error icon.

Question 

Question icon.

◆ Dismiss

enum class Dismiss : uint8_t
strong

Auto-dismiss policy for floating panels and popup windows.

See also
ForegroundPanelOptions::dismiss, Window::SetDismiss()
Enumerator
Manual 

Hides only when you hide it (a popup window also hides when its owner hides).

Auto 

The library also hides it the way the OS closes a native menu.

◆ EditableType

enum class EditableType : uint8_t
strong

The kind of element that holds keyboard focus (see EditableState).

Enumerator
None 

No element holds keyboard focus.

Text 

A single-line text field.

Password 

A password field.

TextArea 

A multi-line text area.

ContentEditable 

An editable (contenteditable) region.

Other 

A focused element that is not a text-editing target (eg, a select).

◆ EditorCommand

enum class EditorCommand : uint8_t
strong

The editing commands you can run with Editor::Execute().

Most commands act on editable text (a text field or an editable region). Copy, SelectAll, and the selection commands (the AndModifySelection forms, SelectWord, SelectLine, SelectParagraph, and Unselect) also work on a selection in regular page content.

Every caret motion has an AndModifySelection form that extends the selection instead of moving the caret (the Shift-key behavior).

Enumerator
Cut 

Cut the selection to the clipboard.

Copy 

Copy the selection to the clipboard.

Paste 

Paste the clipboard's contents.

PasteAsPlainText 

Paste the clipboard's text without its formatting.

SelectAll 

Select all the text (or the whole page).

Undo 

Undo the last edit.

Redo 

Redo the last undone edit.

MoveLeft 

Move the caret one character left.

MoveRight 

Move the caret one character right.

MoveUp 

Move the caret one line up.

MoveDown 

Move the caret one line down.

MoveWordLeft 

Move the caret one word left.

MoveWordRight 

Move the caret one word right.

MoveToBeginningOfLine 

Move the caret to the start of the line.

MoveToEndOfLine 

Move the caret to the end of the line.

MoveToBeginningOfParagraph 

Move the caret to the start of the paragraph.

MoveToEndOfParagraph 

Move the caret to the end of the paragraph.

MoveToBeginningOfDocument 

Move the caret to the start of the text.

MoveToEndOfDocument 

Move the caret to the end of the text.

MovePageUp 

Move the caret one page up.

MovePageDown 

Move the caret one page down.

MoveLeftAndModifySelection 

Select one character left.

MoveRightAndModifySelection 

Select one character right.

MoveUpAndModifySelection 

Select one line up.

MoveDownAndModifySelection 

Select one line down.

MoveWordLeftAndModifySelection 

Select one word left.

MoveWordRightAndModifySelection 

Select one word right.

MoveToBeginningOfLineAndModifySelection 

Select to line start.

MoveToEndOfLineAndModifySelection 

Select to line end.

MoveToBeginningOfParagraphAndModifySelection 

Select to paragraph start.

MoveToEndOfParagraphAndModifySelection 

Select to paragraph end.

MoveToBeginningOfDocumentAndModifySelection 

Select to text start.

MoveToEndOfDocumentAndModifySelection 

Select to text end.

MovePageUpAndModifySelection 

Select one page up.

MovePageDownAndModifySelection 

Select one page down.

SelectWord 

Select the word at the caret.

SelectLine 

Select the line at the caret.

SelectParagraph 

Select the paragraph at the caret.

Unselect 

Clear the selection (no caret remains).

DeleteBackward 

Delete the selection or the previous character.

DeleteForward 

Delete the selection or the next character.

DeleteWordBackward 

Delete the word before the caret.

DeleteWordForward 

Delete the word after the caret.

DeleteToBeginningOfLine 

Delete to the start of the line.

DeleteToEndOfLine 

Delete to the end of the line.

InsertNewline 

Insert a new paragraph (the Enter key).

InsertLineBreak 

Insert a line break in the paragraph (Shift+Enter).

InsertTab 

Insert a tab.

InsertBacktab 

Insert a backtab (Shift+Tab).

◆ EffectQuality

enum class EffectQuality : uint8_t
strong

The quality level for rendering effects (CSS filters, shadows, blurs, etc.).

The level trades the fidelity of large blurs and shadows for speed: lower levels process them at more aggressively reduced resolutions and with a tighter blur falloff.

See also
Config::effect_quality
Enumerator
Low 

Fastest effect quality.

Large blurs and shadows render at heavily reduced resolution and with a truncated falloff, so they appear visibly coarser and tighter than at higher levels.

Medium 

Default effect quality– strikes a good balance between quality and performance.

High 

Highest effect quality– favors quality over performance.

Only software (CPU) rendering processes very large blurs at higher working resolutions than Medium; on GPU-accelerated views blur quality is equivalent to Medium.

◆ EnterKeyHint

enum class EnterKeyHint : uint8_t
strong

The focused element's enterkeyhint (what label or icon the Enter key should present).

See also
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/enterkeyhint
Enumerator
Unspecified 
Enter 
Done 
Go 
Next 
Previous 
Search 
Send 

◆ FaceWinding

enum class FaceWinding : uint8_t
strong

The winding order for front-facing triangles.

(Only used when the GPU renderer is used)

Enumerator
Clockwise 

Clockwise Winding (Direct3D, etc.).

CounterClockwise 

Counter-Clockwise Winding (OpenGL, etc.).

◆ FocusPolicy

enum class FocusPolicy : uint8_t
strong

Keyboard focus policy for a floating panel.

Note
Hiding a floating panel that holds focus releases focus. No panel holds focus until the user clicks one or you call Panel::Focus().
Enumerator
Auto 

Takes focus when clicked, like any panel. Showing the panel never takes focus.

Grab 

Takes keyboard focus when created (unless hidden) and each time it is shown, even from inside a click handler (dropdowns, palettes, in-window dialogs).

None 

Never takes keyboard focus.

Calling Panel::Focus() on it is ignored with a warning (toasts, HUDs).

◆ FontBlendMode

enum class FontBlendMode : uint8_t
strong

How antialiased glyph edges are blended into the page.

See also
Config::font_blend_mode
Enumerator
Profile 

Use the value from the font profile.

GammaCorrected 

Gamma-corrected blending– edges read lighter with more contrast (how browsers on Windows composite text).

SRGB 

Blend in sRGB space– edges keep their full coverage (how macOS composites text).

◆ FontHinting

enum class FontHinting : uint8_t
strong

The font hinting algorithm to use when rendering glyphs.

See also
Config::font_hinting
Enumerator
Smooth 

Lighter hinting algorithm– glyphs are slightly fuzzier but better resemble their original shape.

This is achieved by snapping glyphs to the pixel grid only vertically which better preserves inter-glyph spacing.

Normal 

Let the font profile choose– Config::font_profile picks the hinting that suits its appearance, which for every profile but FontProfile::Light means no hinting (Light keeps light, vertical-only hinting).

Monochrome 

Strongest hinting algorithm– outputs only black/white glyphs.

The result is usually unpleasant if the underlying TTF does not contain hints for this type of rendering.

None 

No hinting is performed– fonts may be blurry at smaller font sizes.

◆ FontProfile

enum class FontProfile : uint8_t
strong

The font-appearance preset that provides default values for the text rendering knobs (Config::font_blend_mode, Config::font_gamma, Config::font_contrast, Config::font_stem_darkening, Config::font_embolden, and the hinting behind FontHinting::Normal).

Knobs you set explicitly override the preset's values.

See also
Config::font_profile
Enumerator
Default 

The standard appearance– currently the same as WindowsLike.

MacOSLike 

Text with the weight and sharpness of Safari and other macOS applications.

WindowsLike 

Text with the crisp, moderate weight of mainstream browsers on Windows.

Light 

No weight compensation at all– the thinnest appearance.

◆ GPUCompressedFormat

enum GPUCompressedFormat : uint32_t

Optional GPU compressed-texture format families.

Each value is a single bit within GPUDeviceCaps::compressed_formats. A driver sets a bit to advertise that it can accept a Bitmap in any of that family's formats in CreateTexture() and sample it directly (the GPU decompresses the blocks in hardware on read).

Note
These are bit flags and are append-only: never renumber or reuse an existing value. Treat any bit you do not recognize as unsupported.
Enumerator
kGPUCompressedFormat_BC1_BC3 

BC1, BC2, and BC3 (also known as DXT1 / DXT3 / DXT5).

kGPUCompressedFormat_BC7 

BC7.

◆ GPUTextureFlags

enum GPUTextureFlags : uint32_t

Flags passed to GPUDriver::CreateTexture() that tell your driver how a texture will be used.

They are combined with bitwise OR; test the bits your driver supports.

Enumerator
kGPUTextureFlag_RenderTarget 

The texture is a render target (the backing texture for a RenderBuffer).

Create it so you can both render into and sample from it. The supplied bitmap is empty (dimensions and format only), so there's nothing to upload at texture creation.

Most render targets are BGRA (BitmapFormat::BGRA8_UNORM_SRGB). A render target may also be single-channel (BitmapFormat::A8_UNORM): back it with a renderable one-channel format (R8 on modern graphics APIs) so that sampling it returns the stored value in the RED channel. Do not apply the alpha swizzle that sampled (non-render-target) A8 textures traditionally carry; the library's shaders read a single-channel render target's red channel directly. Single-channel render targets are only ever drawn with blending disabled and are never multisampled.

kGPUTextureFlag_Antialiased 

The render target should be multisampled (antialiased), resolved to a single-sample texture when sampled.

You will only receive this flag if your driver reports GPUDeviceCaps::supports_msaa from GetDeviceCaps().

kGPUTextureFlag_Immutable 

The texture is uploaded once and never changes.

UpdateTexture() is never called on it, so you may use immutable/static storage and need not keep it CPU-writable.

◆ HitRegionRole

enum class HitRegionRole : uint8_t
strong

What a hit-test region does.

See also
Window::SetHitTestRegions()
Enumerator
Caption 

A draggable title-bar area.

Dragging moves the window, and double-clicking does what double-clicking a title bar does on the platform (usually maximize/restore). The page under it gets no mouse input.

Minimize 

Your minimize button.

Maximize 

Your maximize/restore button.

On Windows 11, hovering it also shows the snap layouts flyout.

Close 

Your close button.

◆ HolderKind

enum class HolderKind
strong

Whether a holder shares ownership of a bound-class instance or owns it alone.

Enumerator
Shared 

Copies share ownership (eg, RefPtr), or the instance is never destroyed (js::Eternal).

Exclusive 

One holder owns the instance and ownership moves (eg, std::unique_ptr).

Returning one to JavaScript leaves it empty, and it can't be a bound parameter.

◆ InputMode

enum class InputMode : uint8_t
strong

The focused element's inputmode hint (what kind of virtual keyboard the page asks for).

See also
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode
Enumerator
Unspecified 
None 
Text 
Telephone 
Url 
Email 
Numeric 
Decimal 
Search 

◆ LogLevel

enum class LogLevel : uint8_t
strong

The severity of a log message, from most to least severe.

See also
DiagnosticsConfig::min_log_level
Enumerator
Fatal 

The application can't continue (eg, a failed device or startup, missing ICU data, or a required platform interface that wasn't set).

Error 

A failure the library recovers from (eg, a resource that failed to load).

Warning 

A problem or diagnostic that isn't a failure (eg, a misused API call).

Info 

Status information.

Debug 

Verbose detail (not sent unless you lower DiagnosticsConfig::min_log_level to Debug).

◆ MediaProfile

enum class MediaProfile : uint8_t
strong

Memory vs.

performance tuning for HTML5 <video> and <audio>.

Pick the profile that matches your target's resource envelope; the engine will tune internal media-pipeline sizing accordingly. The effect of each profile is described on the enumerator below.

The profile is read once when each media element starts loading. Changing Config::media_profile after a <video> or <audio> element is already loading does not affect that element; subsequent elements will pick up the new profile.

See also
Config::media_profile
Note
The library plays WebM files (video/webm and audio/webm) with VP9 video and Opus audio. Other containers and codecs aren't supported.
Enumerator
Balanced 

Sensible default.

Smooth playback and responsive seeking with bounded memory growth as more media elements load. Recommended starting point unless you have a specific reason to choose otherwise.

FavorMemory 

Optimise for low memory footprint at the cost of some smoothness and seek responsiveness.

Recommended for resource-constrained targets and for long-running pages that may host many media elements simultaneously.

FavorPerformance 

Optimise for the smoothest playback and snappiest seeking, at the cost of higher peak memory per media element.

Recommended when playback quality is paramount and the host has plenty of RAM to spare.

◆ MemoryProfile

enum class MemoryProfile : uint8_t
strong

Memory vs.

performance tuning for the renderer's HTML / JavaScript engine heaps.

The profile governs how aggressively the library returns freed heap memory to the operating system, how it balances allocation speed against memory footprint, and how much backing-store memory the compositor keeps per View. The effect of each profile is described on the enumerator below.

The profile is read when the Renderer is created and again by each View at its creation; changing Config::memory_profile afterward affects only Views created later.

See also
Config::memory_profile
Enumerator
Balanced 

Sensible default.

Freed memory is returned to the OS on a moderate cadence and allocation favors speed. Recommended unless you have a specific reason to choose otherwise.

LowMemory 

Optimize for low memory footprint at some cost to peak throughput.

Freed memory is returned to the OS promptly, allocations are packed more densely, and the JavaScript engine collects garbage more eagerly. Recommended for resource-constrained targets and long-running pages where footprint matters more than raw speed.

Performance 

Optimize for peak throughput at the cost of a higher steady-state memory footprint.

Freed memory is held longer for reuse and the JavaScript engine collects garbage less often. Recommended when performance is paramount and the host has plenty of RAM to spare.

◆ MessageLevel

MessageLevel types.

Enumerator
kMessageLevel_Log 
kMessageLevel_Warning 
kMessageLevel_Error 
kMessageLevel_Debug 
kMessageLevel_Info 

◆ MessageSource

MessageSource types.

Enumerator
kMessageSource_XML 
kMessageSource_JS 
kMessageSource_Network 
kMessageSource_ConsoleAPI 
kMessageSource_Storage 
kMessageSource_AppCache 
kMessageSource_Rendering 
kMessageSource_CSS 
kMessageSource_Security 
kMessageSource_ContentBlocker 
kMessageSource_Media 
kMessageSource_MediaSource 
kMessageSource_WebRTC 
kMessageSource_ITPDebug 
kMessageSource_PrivateClickMeasurement 
kMessageSource_PaymentRequest 
kMessageSource_Other 
kMessageSource_NativeAPI 

Diagnostics from the JavaScript, DOM, and Data Bindings APIs.

◆ MessageType

The type of console message (corresponds to the console API method that triggered it).

Enumerator
kMessageType_Log 
kMessageType_Dir 
kMessageType_DirXML 
kMessageType_Table 
kMessageType_Trace 
kMessageType_StartGroup 
kMessageType_StartGroupCollapsed 
kMessageType_EndGroup 
kMessageType_Clear 
kMessageType_Assert 
kMessageType_Timing 
kMessageType_Profile 
kMessageType_ProfileEnd 
kMessageType_Image 

◆ RecycleMode

enum class RecycleMode : uint8_t
strong

Controls how aggressively Renderer::Recycle() reclaims memory.

Enumerator
Lightweight 

A quick recycle, cheap enough to call every frame (the same work the automatic recycler does).

Full 

A thorough recycle, for idle periods or transitions (eg, a loading screen).

A call within a second of the last one does nothing.

◆ ResizeEdge

enum class ResizeEdge : uint8_t
strong

The edge or corner to resize a window from.

See also
Window::BeginDragResize()
Enumerator
Left 
Top 
Right 
Bottom 
TopLeft 
TopRight 
BottomLeft 
BottomRight 

◆ ShaderType

enum class ShaderType : uint8_t
strong

Shader program types.

Each of these correspond to a vertex/pixel shader pair. Stock shaders for every program ship in the SDK's platform/shaders folder, in a compiled or generated form for each backend (DXBC, SPIR-V, MSL, and GLSL).

A conforming GPUDriver implements every program in this enumeration; the library does not query for per-program support.

See also
GPUState::shader_type
Enumerator
Fill 

Shader program for filling quad geometry.

FillPath 

Shader program for filling tessellated path geometry.

FilterBasic 

Shader program for basic CSS/SVG filters.

FilterBlur 

Shader program for blur CSS/SVG filters.

FilterDropShadow 

Shader program for drop-shadow CSS/SVG filters.

FillPhoton 

Shader program for analytic vector rendering (Photon).

Uses the quad vertex layout.

Photon draws carry data pages in the GPUState texture slots and read them with texel loads only. Bind each slot unfiltered, no mipmaps, at the register the shipped shader source declares:

GPUState slot Carries Format Shader binding
texture_1_id Curve page RGBA16F Texture0 (t0)
texture_2_id (never set on Photon draws)
texture_3_id Constants / glyph LUT / ramp RGBA32F Texture2 (t2)
texture_4_id Index/header page RGBA16UI IndexTexture (t3)

The index page has its own slot and register because it needs an integer (uint4) texture view; it must never share a binding point with the float views other programs use.

Every driver must support this program alongside the others; there is no capability query for it.

FillPhotonGrid 

Shader program for grid-based analytic vector rendering (Photon).

Uses the Vertex_2f_2ui instance layout.

Binds the same data pages, slots, and registers as FillPhoton, with one addition: the vertex shader also reads the texture slots, so bind them to both shader stages for this program.

Every driver must support this program alongside the others.

◆ ThreadType

enum class ThreadType : uint8_t
strong

The type of thread, you can choose to optionally handle these for better performance.

Enumerator
Unknown 
JavaScript 
Compiler 
GarbageCollection 
Network 
Graphics 
Audio 

◆ VertexBufferFormat

enum class VertexBufferFormat : uint8_t
strong

Vertex buffer formats.

This enumeration describes the format of a vertex buffer.

Note
Identifiers start with an underscore due to C++ naming rules.
See also
VertexBuffer
Enumerator
_2f_4ub_2f 

Vertex_2f_4ub_2f (used for path rendering).

_2f_4ub_2f_2f_28f 

Vertex_2f_4ub_2f_2f_28f (used for quad rendering).

_2f_2ui 

Vertex_2f_2ui (used for instanced cell rendering).

◆ WindowButtons

enum class WindowButtons : uint8_t
strong

The window actions available to the user (combine with |).

See also
Window::SetWindowButtons()
Enumerator
None 
Minimize 
Maximize 
Close 
All 

◆ WindowFlags

enum class WindowFlags : uint16_t
strong

Window creation flags (combine with |).

See also
Window::Create()
Enumerator
None 
Borderless 

No frame or title bar.

Titled 

A title bar.

Resizable 

The user can resize the window by dragging its edges.

Maximizable 

Minimize and maximize buttons.

Hidden 

Start hidden (call Window::Show() to show it).

Transparent 

Per-pixel transparency: anything the window leaves transparent shows what's behind it.

You can only set this when you create the window.

The View and the page need to be transparent too (pages draw on an opaque white background by default). See the Transparent Windows section in the Window class overview for the full setup.

Note
On Windows, transparent CPU-rendered windows are always borderless (the frame flags are ignored with a warning), and drawing from WindowListener::OnClear() or WindowListener::OnPaint() has no effect on them.
Note
Mouse input isn't tested against transparency. On Windows, GPU-rendered transparent windows receive input over their whole rectangle, while CPU-rendered ones let input over fully transparent pixels fall through to the window beneath.
Note
On macOS, transparent windows get a shadow shaped to their visible content. Square corners remove it (see Window::SetCornerStyle()).
Popup 

Marks a popup window.

Window::CreatePopup() sets this for you (Window::Create() ignores it with a warning).

Popups are always borderless and transparent, and ignore CustomChrome.

CustomChrome 

Draw the title bar and caption buttons yourself, as page content.

The window keeps every native frame behavior (resizing, snapping, the system shadow). See the Custom Chrome section in the Window class overview for the full setup.

You don't need Titled with this. It's ignored (with a warning) together with Borderless, and on popup and fullscreen windows. Window::SetCaptionColor() has no effect, since there's no system title bar to color.

Note
On macOS, the native window buttons stay and float over your content; use Window::window_control_bounds() to leave room for them. Right-clicking a caption region sends the click to the page (on Windows it opens the system window menu).
Note
On Linux, this needs X11 or XWayland (native Wayland isn't supported), and there's no system shadow.

◆ WindowState

enum class WindowState : uint8_t
strong

The window's current display state.

See also
Window::is_maximized(), Window::is_minimized(), WindowListener::OnWindowStateChanged()
Enumerator
Normal 

Neither minimized nor maximized.

Minimized 
Maximized 

Function Documentation

◆ AdoptRef()

template<typename T>
RefPtr< T > AdoptRef ( T & reference)

Helper for wrapping new objects with the RefPtr smart pointer.

All ref-counted object are created with an initial ref-count of '1'. The AdoptRef() helper returns a RefPtr<T> without calling AddRef(). This is used for creating new objects, like so:

RefPtr<Object> ref = AdoptRef(*new ObjectImpl());

◆ After()

InsertPosition After ( RefPtr< LayoutNode > anchor)
inline

Create an insertion position immediately after a sibling.

Parameters
anchorThe sibling to insert after.

◆ Before()

InsertPosition Before ( RefPtr< LayoutNode > anchor)
inline

Create an insertion position immediately before a sibling.

Parameters
anchorThe sibling to insert before.

◆ column() [1/2]

template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > column ( ContainerOptions options,
Children... children )

Describe a column container with child elements.

Parameters
optionsThe container's declared options.
childrenThe child elements to append, in order.
Returns
Returns a builder element describing the column.

◆ column() [2/2]

template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > column ( ContainerOptions options,
RefPtr< Container > * out,
Children... children )

Describe a column container, capturing the created handle in out.

Parameters
optionsThe container's declared options.
outReceives the created container when the layout is built.
childrenThe child elements to append, in order.
Returns
Returns a builder element describing the column.

◆ Convert()

template<typename To = void, typename From>
auto Convert ( const From & from)

Convert between string types.

This function provides efficient conversion between different string types. It supports ultralight::String, std::string, std::string_view, and const char*.

The following type conversions are automatically deduced (no template argument needed):

For explicit conversion to std::string_view, use Convert<std::string_view>().

Template Parameters
ToThe target string type (optional, deduced in common cases)
FromThe source string type (optional)
Parameters
fromThe string to convert
Returns
The converted string in the target type

Example

ultralight::String myStr("Hello, world!");
// ultralight::String -> std::string
std::string stdStr = ultralight::Convert(myStr);
// ultralight::String -> std::string_view
std::string_view svStr = ultralight::Convert<std::string_view>(myStr);
// std::string -> ultralight::String
// std::string_view -> ultralight::String
ultralight::String fromView = ultralight::Convert(std::string_view("View"));
// String literal -> ultralight::String
ultralight::String fromLiteral = ultralight::Convert("literal");
Unicode string container with conversions for UTF-8, UTF-16, and UTF-32.
Definition String.h:31
auto Convert(const From &from)
Convert between string types.
Definition StringSTL.h:101

◆ CreateProfilerPerfetto()

Profiler * CreateProfilerPerfetto ( const char * path)

Create a Profiler implementation that writes Perfetto binary traces (.perfetto-trace).

The trace file is streamed to disk with bounded memory usage and is crash-safe (partial traces are always valid and loadable in https://ui.perfetto.dev).

Parameters
pathOutput file path (e.g., "trace.perfetto-trace").
Returns
Owned Profiler pointer, or nullptr if unavailable for your platform or edition. Caller is responsible for deletion via DestroyProfilerPerfetto().

◆ DestroyProfilerPerfetto()

void DestroyProfilerPerfetto ( Profiler * profiler)

Destroy a Profiler created by CreateProfilerPerfetto.

Safe to call with nullptr.

◆ GetBitmapFormatInfo()

BitmapFormatInfo GetBitmapFormatInfo ( BitmapFormat format)

Get the block geometry for a given BitmapFormat.

Parameters
formatThe pixel format to query.
Returns
Returns the block width, block height, and block size in bytes for the format.

◆ GetBitmapSurfaceFactory()

SurfaceFactory * GetBitmapSurfaceFactory ( )

Get the default Bitmap Surface Factory singleton.

(Do not destroy this, this singleton is owned by the library).

◆ GetDefaultLogger()

Logger * GetDefaultLogger ( const String & logPath)

Get the default logger (writes the log to a file on disk).

Parameters
logPathA file path to write the log to.
Note
This logger also shows a native message box for every LogLevel::Fatal message, so log anything your app can recover from at a lower level.
Note
This singleton is owned by the library, do not destroy it.

◆ GetKeyFromVirtualKeyCode()

void GetKeyFromVirtualKeyCode ( int virtual_key_code,
bool shift,
String & key_result )

Utility function for generating a key string from a virtual key-code.

Parameters
virtual_key_codeThe virtual key-code to generate the key string from.
shiftWhether or not the shift key is currently pressed.
key_resultThe string to store the result in.
Note
This function assumes US keyboard layout.
See also
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values

◆ GetKeyIdentifierFromVirtualKeyCode()

void GetKeyIdentifierFromVirtualKeyCode ( int virtual_key_code,
String & key_identifier_result )

Utility function for generating a key identifier string from a virtual key-code.

Parameters
virtual_key_codeThe virtual key-code to generate the key identifier from.
key_identifier_resultThe string to store the result in.

◆ GetPlatformFileSystem()

FileSystem * GetPlatformFileSystem ( const String & baseDir)

Get the native file system for the current platform, creating it if it doesn't exist using the base directory provided.

This is used to load data for file:/// URLs.

Parameters
baseDirA base file path that will be used to resolve relative file paths. You can optionally specify "@resource_path" on macOS to use the app bundle's resource path.
Note
This singleton is owned by the library, do not destroy it.

◆ GetPlatformFontLoader()

FontLoader * GetPlatformFontLoader ( )

Get the native font loader for the current platform.

Note
This singleton is owned by the library, do not destroy it.

◆ HasFlag()

template<BitmaskEnum T>
bool HasFlag ( T flags,
T bits )
constexpr

Whether or not every bit in bits is set in flags.

if (HasFlag(window->window_buttons(), WindowButtons::Maximize)) { ... }
constexpr bool HasFlag(T flags, T bits)
Whether or not every bit in bits is set in flags.
Definition Defines.h:113
@ Maximize
Definition Window.h:457

◆ IsCompressedFormat()

bool IsCompressedFormat ( BitmapFormat format)

Whether or not a given BitmapFormat is block-compressed (a BCn format).

Parameters
formatThe pixel format to query.

◆ MakeRefPtr()

template<typename T, typename... Args>
RefPtr< T > MakeRefPtr ( Args &&... args)

Construct a new object of type T and wrap it in a RefPtr.

Equivalent to AdoptRef(*new T(args...)).

◆ operator!=() [1/5]

bool operator!= ( const Matrix & a,
const Matrix & b )

◆ operator!=() [2/5]

bool operator!= ( const Matrix4x4 & a,
const Matrix4x4 & b )

◆ operator!=() [3/5]

template<typename T, typename U>
bool operator!= ( const RefPtr< T > & a,
const RefPtr< U > & b )

◆ operator!=() [4/5]

template<typename T, typename U>
bool operator!= ( const RefPtr< T > & a,
const U * b )

◆ operator!=() [5/5]

template<typename T, typename U>
bool operator!= ( const T * a,
const RefPtr< U > & b )

◆ operator&()

template<BitmaskEnum T>
T operator& ( T a,
T b )
constexpr

◆ operator&=()

template<BitmaskEnum T>
T & operator&= ( T & a,
T b )
constexpr

◆ operator==() [1/5]

bool operator== ( const Matrix & a,
const Matrix & b )

◆ operator==() [2/5]

bool operator== ( const Matrix4x4 & a,
const Matrix4x4 & b )

◆ operator==() [3/5]

template<typename T, typename U>
bool operator== ( const RefPtr< T > & a,
const RefPtr< U > & b )

◆ operator==() [4/5]

template<typename T, typename U>
bool operator== ( const RefPtr< T > & a,
const U * b )

◆ operator==() [5/5]

template<typename T, typename U>
bool operator== ( const T * a,
const RefPtr< U > & b )

◆ operator^()

template<BitmaskEnum T>
T operator^ ( T a,
T b )
constexpr

◆ operator^=()

template<BitmaskEnum T>
T & operator^= ( T & a,
T b )
constexpr

◆ operator|()

template<BitmaskEnum T>
T operator| ( T a,
T b )
constexpr

◆ operator|=()

template<BitmaskEnum T>
T & operator|= ( T & a,
T b )
constexpr

◆ operator~()

template<BitmaskEnum T>
T operator~ ( T a)
constexpr

◆ panel()

PanelSpec panel ( PanelOptions options = {},
RefPtr< Panel > * out = nullptr )
inline

Describe a panel in a builder expression (see Builder.h for an example).

Parameters
optionsThe panel's declared options.
outReceives the created panel when the layout is built. Pass nullptr if you don't need the handle.
Returns
Returns a builder element describing the panel.

◆ row() [1/2]

template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > row ( ContainerOptions options,
Children... children )

Describe a row container with child elements.

Parameters
optionsThe container's declared options.
childrenThe child elements to append, in order.
Returns
Returns a builder element describing the row.

◆ row() [2/2]

template<typename... Children>
requires (LayoutBuildable<Children> && ...)
ContainerSpec< Children... > row ( ContainerOptions options,
RefPtr< Container > * out,
Children... children )

Describe a row container, capturing the created handle in out.

Parameters
optionsThe container's declared options.
outReceives the created container when the layout is built.
childrenThe child elements to append, in order.
Returns
Returns a builder element describing the row.

◆ ShowMessageBox()

ButtonResult ShowMessageBox ( const String & title,
const String & message,
DialogIcon icon = DialogIcon::Info,
ButtonType buttons = ButtonType::OK )

Show a modal message box with the specified title, message, icon, and buttons.

Parameters
titleThe title of the message box.
messageThe message to display in the message box.
iconThe icon to display in the message box (default: DialogIcon::Info).
buttonsThe button type to display in the message box (default: ButtonType::OK).
Returns
Returns the result of the button press.

◆ swap() [1/3]

template<class T>
void swap ( RefPtr< T > & a,
RefPtr< T > & b )

◆ swap() [2/3]

template<typename T, size_t N>
void swap ( Vector< T, N > & a,
Vector< T, N > & b )

◆ swap() [3/3]

template<class T>
void swap ( WeakPtr< T > & a,
WeakPtr< T > & b )