Commands for creating and managing application windows. This includes functions for setting window properties like size, position, and title, controlling visibility (showing/hiding), handling DPI changes, managing redraws, and accessing the window's main layout container.
Provides tools for arranging widgets within windows using different layout systems. Includes functions to create Basic, Flexbox, and Grid layouts, add widgets to layouts, manage layout hierarchy (push/pop), and configure layout-specific properties like padding, direction, wrapping, justification, alignment, gaps, and template definitions for grids.
Functions for creating and manipulating user interface elements (widgets). This covers creating standard ProGUI widgets, integrating native OS widgets (including specific types like ScrollBars and WebView2), setting widget properties (size, position, margins, alignment, name, class, skin, user data), controlling visibility, and managing redraws.
Manages the event-driven nature of the GUI. Provides commands to add event handlers (callbacks) for various user interactions (mouse clicks, movement, wheel), window events (closing, DPI changes), drawing phases, and animation updates. Allows for dispatching custom events.
The core 2D drawing API for rendering graphics onto output targets (Windows or Images). Includes commands to start and end drawing operations, manage drawing state (save/restore, transformations, clipping), clear the output, and draw various primitives like lines, rectangles (boxes), rounded rectangles, ellipses, paths, text, and images. Supports setting stroke styles, anti-aliasing, and blend modes.
Commands for handling image resources. Includes functions to load images from files (supporting various formats including multi-size icons), create blank images with specific formats (BGRA32, A8), free image resources, get image dimensions, set image properties (like interpolation mode), and grab portions of existing images.
Functionality for creating and managing brushes used for filling shapes and drawing strokes. Supports creating brushes from images (bitmap brushes) and generating linear or radial gradient brushes with multiple color stops. Commands allow setting brush transformations (position, scale, rotation), opacity, extend modes (clamp, wrap, mirror), and interpolation modes.
Provides methods for creating complex borders, either generated programmatically or based on images (border images). Generated borders support different styles (solid, dashed, dotted, double, groove, ridge, inset, outset) per side, varying widths, colors, opacities, and corner radii. Border images allow defining slices and repeat modes for scalable borders. Includes functions to draw borders and manage their properties like DPI scaling.
Commands for creating, configuring, and drawing text. Allows creating text objects with specific content, font, and size. Provides functions to set text properties such as justification, alignment (horizontal and vertical), weight, style (italic, oblique), decorations (underline, strikethrough), word wrapping, and text trimming (ellipses). Includes functions to get calculated text dimensions.
A system for creating time-based animations and transitions. Includes functions to start and stop animations on objects (Windows or Widgets), retrieve the current time of an animation, and directly animate variables over a duration. Provides a comprehensive set of predefined transition (easing) functions (Linear, Ease, Quad, Cubic, Quart, Quint, Sine, Expo, Circ, Elastic, Back, Bounce) with In, Out, InOut, and OutIn variations, including cubic-bezier customization.
Functionality for applying visual themes or styles (skins) to widgets. Allows creating skins, setting values for specific properties (like colors, borders, backgrounds) based on widget state (e.g., 'hover', 'active') and component parts, retrieving skin data, and drawing skinned backgrounds according to defined layers, images, gradients, positions, sizes, and repeat modes. Supports transitions between skin states.