Categorygithub.com/ddkwork/unison
modulepackage
0.0.0-20241129181601-16579bf63a24
Repository: https://github.com/ddkwork/unison.git
Documentation: pkg.go.dev

# README

Go Reference Go Report Card

Unison

A unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported.

Required setup

Unison is built upon glfw. As such, it requires some setup prior to being able to build correctly:

  • On macOS, you need Xcode or Command Line Tools for Xcode (xcode-select --install) for required headers and libraries.
  • On Ubuntu/Debian-like Linux distributions, you need libgl1-mesa-dev and xorg-dev packages.
  • On CentOS/Fedora-like Linux distributions, you need libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel libXxf86vm-devel packages.
  • On Windows, you need https://jmeubank.github.io/tdm-gcc/download/ as well as https://git-scm.com for its bash shell.
  • See compilation dependencies for full details.

This version of Unison was built using Go 1.19. It has been compiled under many earlier versions of Go in the past, but only Go 1.19+ will be considered as I make further changes.

Example

An example application can be found in the example directory:

go run example/main.go

Notes

Unison was developed with the needs of my personal projects in mind, so may not be a good fit for your particular needs. I'm open to suggestions on ways to improve the code and will happily consider Pull Requests with bug fixes or feature additions.

Compatibility

Unison is very much a work in progress. As such, it is likely to have breaking changes. To reflect this, a version number of 0.x.x will be in use until such time that I'm comfortable locking things down to ensure compatibility between releases. Please keep this in mind when making the decision to use Unison in your own code.

Look & Feel

Unison defines its own look and feel for widgets and will likely be adjusted over time. This was done to provide as much consistency as possible between all supported platforms. It also side-steps issues where a given platform itself has no or poorly defined standards. Colors, fonts, spacing, how the widgets behave, and more are customizable, so if you are feeling particularly ambitious, you could create your own theming that matches a given platform.

Organization

There are a large number of Go source files in a single, top-level package. Unison didn't start out this way, but user experience code tends to need to have its tentacles in many places, and the logical separations I made kept hindering the ability to do things. Ultimately, I made the decision to collapse nearly everything into a single package to simplify development and greatly reduce the overall complexity of things.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

ActiveWindow returns the window that currently has the keyboard focus, or nil if none of your application windows has the keyboard focus.
AllDisplays returns all displays.
AllFontFaces returns all known font faces as FontFaceDescriptors.
AllowQuitCallback will cause f to be called when app termination has been requested.
AllWindowsToFront brings all of the application's windows to the foreground.
Alpha30Filter returns a ColorFilter that transforms colors by applying a 30% alpha blend.
AlwaysEnabled is a helper function whose signature matches the 'can' function signature required for InstallCmdHandlers() that always returns true.
Ancestor returns the first ancestor of the given type.
AncestorIs returns true if the paneler has the given ancestor.
AncestorIsOrSelf returns true if the paneler has the given ancestor or is the ancestor.
AncestorOrSelf returns the provided panel or the first ancestor of the given type.
ARGB creates a new Color from RGB (Red, Green Blue) values in the range 0-255 and an alpha value in the range 0-1.
ARGBfloat creates a new Color from ARGB (Alpha, Red, Green Blue) values in the range 0-1.
ArrowCursor returns the standard arrow cursor.
AttachConsole attempts to fix Windows console output, which is generally broken thanks to their oddball and unnecessary split between graphical and command-line applications.
AttemptQuit initiates the termination sequence.
Beep plays the system beep sound.
BestDisplayForRect returns the display with the greatest overlap with the rectangle, or the primary display if there is no overlap.
CannotRedoTitle returns the Cannot Redo title.
CannotUndoTitle returns the Cannot Undo title.
CatmullRomResampler is the standard "Catmull-Rom" filter.
CheckStateFromBool returns the equivalent CheckState.
CollectUUIDsFromRow returns a map containing the UUIDs of the provided node and all of its descendants.
ColorDecode creates a Color from a string.
CombinePaths combines two or more paths into a new path.
CopyAction returns the action that copies the selection and places it on the clipboard.
CountTableRows returns the number of table rows, including all descendants, whether open or not.
CreateDeriveLightnessFunc returns a function that will adjust the lightness of a ThemeColor by the given amount.
CreateFontFace creates a new FontFace from font data.
CreatePDF writes a PDF to the given stream.
CurrentColorMode returns the current ColorMode state.
CutAction returns the action that removes the selection and places it on the clipboard.
DashEffect returns a 4-4 dash effect.
DefaultMarkdownLinkHandler provides the default link handler, which handles opening a browsers for http and https links.
DefaultMenuFactory returns the default MenuFactory for the platform.
DefaultThemeError returns the default error color.
DefaultThemeFocus returns the default focus color.
DefaultThemeSurface returns the default surface color.
DefaultThemeTooltip returns the default tooltip color.
DefaultThemeWarning returns the default warning color.
DeleteAction returns the action that deletes the selection.
DeriveMarkdownCodeBlockFont derives a FontDescriptor for code from another font.
DeriveMarkdownHeadingFont derives a FontDescriptor for a heading from another font.
DeriveOn returns a new ThemeColor that is the On color for the passed in ThemeColor.
DistillImageSpecFor distills a file path or URL string into one that likely has an image we can read, or an empty string.
DockableFromDragData attempts to extract a Dockable from the given key in the data.
DockableHasFocus returns true if the given Dockable has the current focus inside it.
DoubleClickParameters returns the maximum delay between clicks and the maximum pixel drift allowed to register as a double-click.
DragGestureParameters returns the minimum delay before mouse movement should be recognized as a drag as well as the minimum pixel drift required to trigger a drag.
DrawEllipseBase fills and strokes an ellipse.
DrawLabel draws a label.
DrawRectBase fills and strokes a rectangle.
DrawRoundedRectBase fills and strokes a rounded rectangle.
EncodedImageFormatForExtension returns the EncodedImageFormat associated with the extension.
EncodedImageFormatForMimeType returns the EncodedImageFormat associated with the mime type.
EncodedImageFormatForPath returns the EncodedImageFormat associated with the extension of the given path.
ErrorDialogWithError displays a standard error dialog with the specified primary message and extracts the message from the error for its detail.
ErrorDialogWithMessage displays a standard error dialog with the specified primary and detail messages.
ErrorDialogWithPanel displays a standard error dialog with the specified panel.
FloatingWindowOption causes the window to float in front of all other non-floating windows.
FontFamilies retrieves the names of the installed font families.
Grayscale30Filter returns a ColorFilter that transforms colors to grayscale and applies a 30% alpha blend.
HasAnyPrefix returns true if the target has a prefix matching one of those found in prefixes.
HasURLPrefix returns true if the target has a prefix of "http://" or "https://".
HSB creates a new opaque Color from HSB (Hue, Saturation, Brightness) values in the range 0-1.
HSBA creates a new Color from HSBA (Hue, Saturation, Brightness, Alpha) values in the range 0-1.
InsertAboutItem creates the standard "About" menu item that will call the provided handler when chosen.
InsertBringAllToFrontItem creates the standard "Bring All to Front" menu item that will call AllWindowsToFront when chosen.
InsertCloseFocusedWindowItem creates the standard "Close" menu item that will close the currently focused window when chosen.
InsertMinimizeItem creates the standard "Minimize" menu item that will issue the Minimize command to the currently focused window when chosen.
InsertPreferencesItem creates the standard "Preferences…" menu item that will call the provided handler when chosen.
InsertQuitItem creates the standard "Quit"/"Exit" menu item that will issue the Quit command when chosen.
InsertStdMenus adds the standard menus to the menu bar.
InsertZoomItem creates the standard "Zoom" menu item that will issue the Zoom command to the currently focused window when chosen.
InstallDropSupport installs default drop support into a table.
InvokeTask calls a function on the UI thread.
InvokeTaskAfter schedules a function to be run on the UI thread after waiting for the specified duration.
IsColorModeTrackingPossible returns true if the underlying platform can provide the current dark mode state.
IsControlAction returns true if the keyCode should trigger a control, such as a button, that is focused.
IsDarkModeEnabled returns true if the OS is currently using a "dark mode".
KeyBindingFromKey extracts a KeyBinding from a string created via a call to .Key().
KeyCodeFromKey extracts KeyCode from a string created via a call to .Key().
LabelSize returns the preferred size of a label.
MarkDynamicColorsForRebuild marks the dynamic colors to be updated the next time RebuildDynamicColors() is called.
MatchFontFace attempts to locate the FontFace with the given family and style.
MatchFontFamily returns a FontFamily for the specified family name.
MaxSize returns the size that is at least as large as DefaultMaxSize in both dimensions, but larger if the size that is passed in is larger.
MitchellResampler is the standard "Mitchell" filter.
ModifiersFromKey extracts Modifiers from a string created via a call to .Key().
MoveCursor returns the standard move cursor.
MoveCursorImage returns the standard move cursor image.
MustColorDecode is the same as ColorDecode(), but returns Black if an error occurs.
MustSVG creates a new SVG the given svg path string (the contents of a single "d" attribute from an SVG "path" element) and panics if an error would be generated.
MustSVGFromContentString creates a new SVG and panics if an error would be generated.
MustSVGFromReader creates a new SVG and panics if an error would be generated.
New1dPathPathEffect creates a new 1D path PathEffect.
New2dLinePathEffect creates a new 2D line PathEffect.
New2dPathEffect creates a new 2D PathEffect.
New2PtConicalGradientShader creates a new 2-point conical gradient Shader.
NewAlphaFilter returns a new ColorFilter that applies an alpha blend.
NewAppMenu creates a standard 'App' menu.
NewARGBTableColorFilter returns a new ARGB table color filter.
NewArithmeticImageFilter returns a new arithmetic image filter.
NewBlendColorFilter returns a new blend color filter.
NewBlendShader creates a new blend Shader.
NewBlurImageFilter returns a new blur image filter.
NewBlurMaskFilter returns a new blur mask filter.
NewButton creates a new button.
NewCancelButtonInfo creates a standard cancel button.
NewCheckBox creates a new checkbox.
NewClipMaskFilter returns a new clip mask filter.
NewColorImageFilter returns a new color image filter.
NewColorShader creates a new color Shader.
NewCommonOpenDialog creates a new OpenDialog.
NewCommonSaveDialog creates a new SaveDialog.
NewComposeColorFilter returns a new color filter that combines two other color filters.
NewComposeImageFilter returns a new combining image filter.
NewComposePathEffect creates a new PathEffect that combines two PathEffects.
NewCompoundBorder creates a border that contains other borders.
NewCornerPathEffect creates a new corner PathEffect.
NewCursor creates a new custom cursor from an image.
NewDashPathEffect creates a new dash PathEffect.
NewDefaultFieldBorder creates the default border for a field.
NewDialog creates a new standard dialog.
NewDilateImageFilter returns a new dilate image filter.
NewDiscretePathEffect creates a new discrete PathEffect.
NewDisplacementImageFilter returns a new displacement image filter.
NewDistantLitDiffuseImageFilter returns a new distant lit diffuse image filter.
NewDistantLitSpecularImageFilter returns a new distant lit specular image filter.
NewDock creates a new, empty, dock.
NewDockContainer creates a new DockContainer.
NewDockState creates a new DockState for the given Dock.
NewDropShadowImageFilter returns a new drop shadow image filter.
NewDropShadowOnlyImageFilter returns a new drop shadow only image filter.
NewDynamicColor creates a new DynamicColor and registers it for theme updates.
NewEditMenu creates a standard 'Edit' menu.
NewEmptyBorder creates a new empty border with the specified insets.
NewErodeImageFilter returns a new erode image filter.
NewEvenlySpacedGradient creates a new gradient with the specified colors evenly spread across the whole range.
NewField creates a new, empty, field.
NewFileMenu creates a standard 'File' menu.
NewFileStream creates a new stream that writes to a file.
NewFractalPerlinNoiseShader creates a new fractal perlin noise Shader.
NewGammaMaskFilter returns a new gamma mask filter.
NewGroup creates a new group for the specified set of panels.
NewHelpMenu creates a standard 'Help' menu.
NewHighContrastColorFilter returns a new high contrast color filter.
NewHorizontalEvenlySpacedGradient creates a new gradient with the specified colors evenly spread across the whole range.
NewHorizontalInsets creates a new Insets whose left and right edges have the specified value.
NewIdentityMatrix creates a new identity transformation 2D matrix.
NewImageFromBytes creates a new image from raw bytes.
NewImageFromDrawing creates a new image by drawing into it.
NewImageFromFilePathOrURL creates a new image from data retrieved from the file path or URL.
NewImageFromFilePathOrURLWithContext creates a new image from data retrieved from the file path or URL.
NewImageFromPixels creates a new image from pixel data.
NewImageShader creates a new image Shader.
NewImageSourceDefaultImageFilter returns a new image source image filter that uses the default quality and the full image size.
NewImageSourceImageFilter returns a new image source image filter.
NewInWindowMenuFactory creates a new MenuFactory for in-window usage.
NewLabel creates a new, empty label.
NewLightingColorFilter returns a new lighting color filter.
NewLinearGradientShader creates a new linear gradient Shader.
NewLineBorder creates a new line border.
NewLink creates a new RichLabel that can be used as a hyperlink.
NewList creates a new List control.
NewLumaColorFilter returns a new luma color filter.
NewMagnifierImageFilter returns a new magnifier image filter.
NewMarkdown creates a new markdown widget.
NewMatrixColorFilter returns a new matrix color filter.
NewMatrixConvolutionImageFilter returns a new matrix convolution image filter.
NewMatrixTransformImageFilter returns a new matrix transform image filter.
NewMemoryStream creates a new stream that writes to memory.
NewMergeImageFilter returns a new merge image filter.
NewMessagePanel creates a new panel containing the given primary and detail messages.
NewMultiLineField creates a new, empty, multi-line, field.
NewNoButtonInfo creates a standard No button.
NewNumericField creates a new field that holds a numeric value and limits its input to a specific range of values.
NewOffsetImageFilter returns a new offset image filter.
NewOKButtonInfo creates a standard OK button.
NewOKButtonInfoWithTitle creates a standard OK button with a specific title.
NewOpenDialog creates a new open dialog using native support where possible.
NewPaint creates a new Paint.
NewPanel creates a new panel.
NewPath creates a new, empty path.
NewPathFromSVGString attempts to create a path from the given SVG string.
NewPoint creates a new Point.
NewPointLitDiffuseImageFilter returns a new point lit diffuse image filter.
NewPointLitSpecularImageFilter returns a new point lit specular image filter.
NewPointPtr creates a new *Point.
NewPopupMenu creates a new PopupMenu.
NewProgressBar creates a new progress bar.
NewRadialGradientShader creates a new radial gradient Shader.
NewRadioButton creates a new radio button.
NewRect creates a new Rect.
NewRectPtr creates a new *Rect.
NewRichLabel creates a new, empty rich label.
NewRotationByDegreesMatrix creates a new 2D matrix that rotates by 'degrees'.
NewRotationMatrix creates a new 2D matrix that rotates by 'radians'.
NewSaveDialog creates a new save dialog using native support where possible.
NewScaleMatrix creates a new 2D matrix that scales by 'sx' and 'sy'.
NewScrollBar creates a new scroll bar.
NewScrollPanel creates a new scrollable area.
NewSeparator creates a new separator line.
NewShaderMaskFilter returns a new shader mask filter.
NewSize creates a new Size.
NewSizePtr creates a new *Size.
NewSpotLitDiffuseImageFilter returns a new spot lit diffuse image filter.
NewSpotLitSpecularImageFilter returns a new spot lit specular image filter.
NewSumPathEffect creates a new sum PathEffect.
NewSVG creates a new SVG the given svg path string (the contents of a single "d" attribute from an SVG "path" element).
NewSVGButton creates an SVG icon button with a size equal to the default button theme's font baseline.
NewSVGFromContentString creates a new SVG.
NewSVGFromReader creates a new SVG.
NewSweepGradientShader creates a new sweep gradient Shader.
NewTable creates a new Table control.
NewTableColumnHeader creates a new table column header panel.
NewTableDragDrawable creates a new drawable for a table row drag.
NewTableHeader creates a new TableHeader.
NewTableMaskFilter returns a new table mask filter.
NewTag creates a new, empty Tag.
NewText creates a new Text.
NewTextFromRunes creates a new Text.
NewTextLines creates a new list of Text, one for each logical line.
NewTextWrappedLines creates a new list of Text, potentially multiple for each logical line.
NewTileImageFilter returns a new tile image filter.
NewTooltipBase returns the base for a tooltip.
NewTooltipWithSecondaryText creates a text tooltip panel containing a primary piece of text along with a secondary piece of text in a slightly smaller font.
NewTooltipWithText creates a standard text tooltip panel.
NewTranslationMatrix creates a new 2D matrix that translates by 'tx' and 'ty'.
NewTrimPathEffect creates a new trim PathEffect.
NewTurbulencePerlinNoiseShader creates a new turbulence perlin noise Shader.
NewUndoManager creates a new undo/redo manager.
NewUniformInsets creates a new Insets whose edges all have the same value.
NewVerticalEvenlySpacedGradient creates a new gradient with the specified colors evenly spread across the whole range.
NewVerticalInsets creates a new Insets whose top and bottom edges have the specified value.
NewWell creates a new Well.
NewWindow creates a new, initially hidden, window.
NewWindowMenu creates a standard 'Window' menu.
NewYesButtonInfo creates a standard Yes button.
NextUndoID returns the next available undo ID.
NoGlobalMenuBar will disable the global menu bar on platforms that normally use it, instead using the in-window menu bar.
NormalizeOKLCH returns the normalized lightness (0-1), chroma (0-0.37), and hue (0-360) values using the OKLCH color space.
NotResizableWindowOption prevents the window from being resized by the user.
OKLCH creates a Color from lightness (0-1), chroma (0-0.37), hue (0-360), alpha (0-1) values using the OKLCH color space.
OpenFilesCallback will cause f to be called when the application is asked to open one or more files by the OS or an external application.
OSMenuCmdModifier returns the OS's standard menu command key modifier.
PasteAction returns the action that pastes the contents of the clipboard, replacing the selection.
PointingCursor returns the standard pointing cursor.
PrimaryDisplay returns the primary display.
QuestionDialog displays a standard question dialog with the specified primary and detail messages.
QuestionDialogWithPanel displays a standard question dialog with the specified panel.
QuitAfterLastWindowClosedCallback will cause f to be called when the last window is closed to determine if the application should quit as a result.
QuittingCallback will cause f to be called just before the app terminates.
RebuildDynamicColors rebuilds the dynamic colors, but only if a call to MarkDynamicColorsForRebuild() has been made since the last time this function was called.
RecoveryCallback will cause f to be called should a task invoked via task.InvokeTask() or task.InvokeTaskAfter() panic.
RegisterFont registers a font with the font manager.
ReleaseOnUIThread will add f to the release queue and eventually call it on the UI thread.
ResizeHorizontalCursor returns the standard horizontal resize cursor.
ResizeHorizontalCursorImage returns the standard horizontal resize cursor image.
ResizeLeftDiagonalCursor returns the standard left diagonal resize cursor.
ResizeLeftDiagonalCursorImage returns the standard left diagonal resize cursor image.
ResizeRightDiagonalCursor returns the standard right diagonal resize cursor.
ResizeRightDiagonalCursorImage returns the standard right diagonal resize cursor image.
ResizeVerticalCursor returns the standard vertical resize cursor.
ResizeVerticalCursorImage returns the standard vertical resize cursor image.
ReviseTarget returns a sanitized target with either a link or an absolute path.
RGB creates a new opaque Color from RGB (Red, Green Blue) values in the range 0-255.
RouteActionToFocusEnabledFunc is intended to be the EnabledCallback for actions that will route to the currently focused UI widget and call CanPerformCmd() on it.
RouteActionToFocusExecuteFunc is intended to be the ExecuteCallback for actions that will route to the currently focused UI widget and call PerformCmd() on it.
RowContainsRow returns true if 'descendant' is in fact a descendant of 'ancestor'.
SanitizeExtensionList ensures the extension list is consistent: - removal of leading and trailing white space - removal of leading "*." or "." - lower-cased - removal of duplicates - removal of empty extensions.
SelectAllAction returns the action that selects everything in the current focus.
SetThemeMode sets the current ColorMode.
SlantFromString extracts the FontSlant from a string.
SpacingFromString extracts the FontSpacing from a string.
Start the application.
StartupFinishedCallback will cause f to be called once application startup has completed and it is about to start servicing the event loop.
StdInsets returns insets preset to the standard spacing.
TextCursor returns the standard text cursor.
ThemeChanged marks dynamic colors for rebuilding, calls any installed theme change callback, and then redraws all windows.
ThemeChangedCallback will cause f to be called when the theme is changed.
TitleIconsWindowOption sets the title icon of the window.
TransientWindowOption causes the window to be marked as transient, which means it will never be considered the active window.
UndecoratedWindowOption prevents the standard window decorations (title as well as things like close buttons) from being shown.
UndoManagerFor returns the UndoManager for a given Paneler.
ValidateSaveFilePath ensures the given path is ok to be used to save a file.
WarningDialogWithMessage displays a standard warning dialog with the specified primary and detail messages.
WarningDialogWithPanel displays a standard error dialog with the specified panel.
WeightFromString extracts the FontWeight from a string.
WindowCount returns the number of windows that are open.
Windows returns a slice containing the current set of open windows.
YesNoCancelDialog displays a standard question dialog with the specified primary and detail messages.
YesNoCancelDialogWithPanel displays a standard question dialog with the specified panel.
YesNoDialog displays a standard question dialog with the specified primary and detail messages.
YesNoDialogWithPanel displays a standard question dialog with the specified panel.

# Constants

Pre-defined menu IDs.
Possible Modifiers values.
Possible values for ColorChannel.
Pre-defined menu IDs.
Possible values for StrokeJoin.
Possible values for FontWeight.
Possible values for ColorChannel.
Possible values for EncodedImageFormat.
Possible values for FontWeight.
FontMetrics flags.
Pre-defined menu IDs.
Possible values for StrokeCap.
Constants for mouse buttons.
Constants for mouse buttons.
Constants for mouse buttons.
Possible Modifiers values.
Possible values for BlendMode.
Possible values for Direction.
Pre-defined menu IDs.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Possible ink well masks.
Possible Modifiers values.
Possible values for FontSpacing.
Possible values for the DockState Type field.
Should be or'd into IDs for context menus.
Possible Modifiers values.
Pre-defined menu IDs.
Possible values for Direction.
Pre-defined menu IDs.
Possible values for BlendMode.
DefaultMarkdownWidth is the default maximum width to use, roughly equivalent to a page at 100dpi.
DefaultMaxSize is the default size that should be used for a maximum dimension if the target has no real preference and can be expanded beyond its preferred size.
DefaultMonospacedFamilyName is the default monospaced font family name.
DefaultSystemFamilyName is the default system font family name and will be used as a fallback where needed.
Pre-defined menu IDs.
DialogClientDataKey is the key used in the ClientData() of the Window the dialog puts up which contains the *Dialog of the owning dialog.
Possible values for PathOp.
Possible values for BlendMode.
Possible values for the DockState Type field.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Pre-defined menu IDs.
Possible values for FillType.
Possible values for BlendMode.
Possible values for FontSpacing.
Possible values for FontWeight.
Possible values for FontWeight.
Possible values for FontSpacing.
Possible values for FontSpacing.
Possible values for FontWeight.
Pre-defined menu IDs.
interporate between 2x2 sample points (bilinear interpolation).
single sample point (nearest neighbor).
Possible values for FontHinting.
Possible values for FontHinting.
Possible values for FontHinting.
Possible values for FontHinting.
Possible values for EncodedImageFormat.
Possible ink well masks.
Possible values for ColorChannel.
Possible values for BlendMode.
Pre-defined menu IDs.
Pre-defined menu IDs.
Pre-defined menu IDs.
Possible values for FilterQuality.
Possible values for BlendMode.
Possible values for EncodedImageFormat.
Possible values for Blur.
Possible values for PathOp.
InvalidImageFormatStr is returned for as an error indicator for some methods on EncodedImageFormat.
Possible values for FillType.
Possible values for FillType.
Possible values for InvertStyle.
Possible values for TrimMode.
Possible values for InvertStyle.
Possible values for FontWeight.
Possible values for the slant of a font.
Possible values for EncodedImageFormat.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
KeyF25 = KeyCode(glfw.KeyF25).
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Virtual key codes.
Possible values for ArcSize.
Possible values for the DockState Type field.
Possible values for BlendMode.
Possible values for FontWeight.
Possible values for PointMode.
Possible values for FilterQuality.
Possible values for BlendMode.
Pre-defined menu IDs.
Possible values for FontWeight.
Possible values for FilterQuality.
Pre-defined menu IDs.
interpolate between the two nearest levels.
sample from the nearest level.
ignore mipmap levels, sample from the "base".
Possible values for StrokeJoin.
Possible values for CheckState.
Pre-defined modal response codes.
Pre-defined modal response codes.
Pre-defined modal response codes.
Pre-defined modal response codes.
Possible values for BlendMode.
Possible values for PathEffect1DStyle.
Possible values for BlendMode.
Possible values for InvertStyle.
Possible Modifiers values.
Possible Modifiers values.
Possible values for FilterQuality.
Possible values for Blur.
Possible values for FontWeight.
Possible values for TrimMode.
Possible values for the slant of a font.
NoUndoID represents an empty undo ID value.
Possible Modifiers values.
Possible values for the slant of a font.
Possible values for CheckState.
Possible values for CheckState.
Possible Modifiers values.
Possible values for Blur.
Possible values for BlendMode.
Pre-defined menu IDs.
Possible ink well masks.
Possible values for BlendMode.
Possible values for EncodedImageFormat.
Possible values for PointMode.
Possible values for PointMode.
Pre-defined menu IDs.
Pre-defined menu IDs.
Pre-defined menu IDs.
Possible values for ColorChannel.
Possible values for PathOp.
Pre-defined menu IDs.
Possible values for PathEffect1DStyle.
Possible values for StrokeCap.
Possible values for StrokeJoin.
Possible values for BlendMode.
Possible values for BlendMode.
Pre-defined menu IDs.
Possible values for FontWeight.
Possible values for FontSpacing.
Possible values for FontSpacing.
Pre-defined menu IDs.
Possible Modifiers values.
Pre-defined menu IDs.
Possible values for ArcSize.
Possible values for BlendMode.
Possible values for Blur.
Possible values for StrokeCap.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for BlendMode.
Possible values for FontSpacing.
StdHSpacing is the typical spacing between columns.
StdVSpacing is the typical spacing between rows.
Possible Modifiers values.
FontMetrics flags.
FontMetrics flags.
Possible values for FontWeight.
Possible values for TileMode.
Possible values for TileMode.
Possible values for TileMode.
Possible values for TileMode.
Possible values for PathEffect1DStyle.
Possible values for FontSpacing.
Possible values for FontSpacing.
FontMetrics flags.
FontMetrics flags.
Possible values for PathOp.
Possible values for EncodedImageFormat.
Pre-defined menu IDs.
Possible values for EncodedImageFormat.
Possible values for EncodedImageFormat.
Possible values for FillType.
Pre-defined menu IDs.
Pre-defined menu IDs.
Possible values for PathOp.
Possible values for BlendMode.
Pre-defined menu IDs.

# Variables

Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined SVG images used by Unison.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined SVG images used by Unison.
Pre-defined SVG images used by Unison.
CSS named colors.
Pre-defined SVG images used by Unison.
Pre-defined SVG images used by Unison.
Pre-defined SVG images used by Unison.
Pre-defined SVG images used by Unison.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined SVG images used by Unison.
CSS named colors.
CSS named colors.
DefaultButtonTheme holds the default ButtonTheme values for Buttons.
DefaultCheckBoxTheme holds the default CheckBoxTheme values for CheckBoxes.
DefaultDialogTheme holds the default DialogTheme values for Dialogs.
DefaultDockHeaderTheme holds the default DockHeaderTheme values for DockHeaders.
DefaultDockTabTheme holds the default DockTabTheme values for DockTabs.
DefaultDockTheme holds the default DockTheme values for Docks.
DefaultFieldTheme holds the default FieldTheme values for Fields.
DefaultLabelTheme holds the default LabelTheme values for Labels.
DefaultLinkTheme holds the default Link theme values.
DefaultListTheme holds the default ListTheme values for Lists.
DefaultMarkdownTheme holds the default MarkdownTheme values for Markdown.
DefaultMenuItemTheme holds the default MenuItemTheme values for menu items.
DefaultMenuTheme holds the default MenuTheme values for Menus.
DefaultPopupMenuTheme holds the default PopupMenuTheme values for PopupMenus.
DefaultProgressBarTheme holds the default ProgressBarTheme values for ProgressBars.
DefaultRadioButtonTheme holds the default RadioButtonTheme values for RadioButtons.
DefaultRichLabelTheme holds the default RichLabelTheme values for RichLabels.
DefaultScrollBarTheme holds the default ScrollBarTheme values for ScrollBars.
DefaultScrollPanelTheme holds the default ScrollPanelTheme values for ScrollPanels.
DefaultSeparatorTheme holds the default SeparatorTheme values for Separators.
DefaultSVGButtonTheme holds the default ButtonTheme values for SVG Buttons.
DefaultTableColumnHeaderTheme holds the default TableColumnHeaderTheme values for TableColumnHeaders.
DefaultTableHeaderTheme holds the default TableHeaderTheme values for TableHeaders.
DefaultTableTheme holds the default TableTheme values for Tables.
DefaultTagTheme holds the default TagTheme values for Tags.
DefaultTitleIcons are the default title icons that will be used for all newly created windows.
DefaultTooltipTheme holds the default TooltipTheme values for Tooltips.
DefaultWellTheme holds the default WellTheme values for Wells.
CSS named colors.
CSS named colors.
DisableMenus overrides all application menus when set to true, causing them to become disabled.
Pre-defined theme colors.
Pre-defined SVG images used by Unison.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined fonts.
Pre-defined fonts.
ErrColorDecode is the sentinel error returned by the ColorDecode function on failure.
Pre-defined theme colors.
Pre-defined fonts.
CSS named colors.
CSS named colors.
FontWeights holds the set of possible FontWeight values.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
GlobalClipboard holds the global clipboard.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
Pre-defined fonts.
CSS named colors.
KnownImageFormatExtensions holds the list of known image file format extensions.
KnownImageFormatFormats holds the list of known image file formats.
Pre-defined fonts.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined fonts.
MouseWheelMultiplier is used by the default theme to multiply incoming mouse wheel event deltas.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Colors used for the On() method.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Colors used for the On() method.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
Slants holds the set of possible FontSlant values.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined fonts.
CSS named colors.
Pre-defined SVG images used by Unison.
Pre-defined SVG images used by Unison.
Spacings holds the set of possible FontSpacing values.
CSS named colors.
CSS named colors.
Pre-defined fonts.
Pre-defined theme colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The theme colors used throughout Unison.
The theme colors used throughout Unison.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The colors derived from the theme colors.
The theme colors used throughout Unison.
The colors derived from the theme colors.
The theme colors used throughout Unison.
The colors derived from the theme colors.
The theme colors used throughout Unison.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
CSS named colors.
Pre-defined SVG images used by Unison.
CSS named colors.
CSS named colors.
Pre-defined theme colors.
CSS named colors.
CSS named colors.
CSS named colors.
Pre-defined SVG images used by Unison.
Pre-defined SVG images used by Unison.
CSS named colors.
CSS named colors.

# Structs

Action describes an action that can be performed.
Button represents a clickable button.
ButtonTheme holds theming data for a Button.
Canvas is a drawing surface.
CheckBox represents a clickable checkbox with an optional label.
CheckBoxTheme holds theming data for a CheckBox.
Clipboard provides access to the system clipboard as well as an internal, application-only, clipboard.
ClipboardData holds a type and data pair.
ColorFilter is called with source colors and return new colors, which are then passed onto the next stage.
ColorFilteredInk holds an ink and a color filter to apply to the ink.
ColumnInfo holds column information.
CompoundBorder provides stacking of borders together.
CubicResampler holds the parameters for cubic resampling.
DefaultCellFactory provides a simple implementation of a CellFactory that uses Labels for its cells.
DefaultTableColumnHeader provides a default table column header panel.
DerivedThemeColor holds a ThemeColor that is derived from another ThemeColor.
Dialog holds information about a dialog.
DialogButtonInfo holds information for constructing the dialog button panel.
DialogTheme holds theming data for a Dialog.
Display holds information about each available active display.
Dock provides an area where Dockable panels can be displayed and rearranged.
DockContainer holds one or more Dockable panels.
DockHeaderTheme holds theming data for a DockHeader.
DockLayout provides layout of DockContainers and other DockLayouts within a Dock.
DockState holds a snapshot of the arrangement of Dockables within a Dock.
DockTabTheme holds theming data for a DockTab.
DockTheme holds theming data for a Dock.
DragData holds data drag information.
DrawableSVG makes an SVG conform to the Drawable interface.
DynamicColor holds a color that may be changed.
DynamicFont holds a Font that can be dynamically adjusted.
EmptyBorder provides and empty border with the specified insets.
Field provides a text input control.
FieldState holds the text and selection data for the field.
FieldTheme holds theming data for a Field.
FileStream provides a way to write data to a file.
FlexLayout lays out the children of its Layoutable based on the FlexLayoutData assigned to each child.
FlexLayoutData is used to control how an object is laid out by the FlexLayout layout.
FlowLayout is a Layout that lays components out left to right, then top to bottom.
FontDescriptor holds information necessary to construct a Font.
FontFace holds the immutable portions of a font description.
FontFaceDescriptor holds information necessary to construct a FontFace.
FontFamily holds information about one font family.
Gradient defines a smooth transition between colors across an area.
Group is used to ensure only one panel in a group is selected at a time.
GroupPanel is a panel that can be used in a Group.
ImageFilter performs a transformation on the image before drawing it.
IndirectColor holds a color that references another color.
IndirectFont holds a Font that references another font.
IndirectInk an ink that references another ink.
InputCallbacks holds the callbacks that client code can hook into for user input events.
KeyBinding holds a key code and/or modifier.
Label represents non-interactive text and/or a Drawable.
LabelTheme holds theming data for a Label.
LineBorder private a lined border.
LinkTheme holds theming data for a link.
List provides a control that allows the user to select from a list of items, represented by cells.
ListTheme holds theming data for a List.
Markdown provides markdown display widget.
MarkdownTheme holds theming data for a Markdown.
MaskFilter performs a transformation on the mask before drawing it.
MemoryStream provides a way to write data to a buffer.
MenuItemTheme holds theming data for a menu item.
MenuTheme holds theming data for a Menu.
NumericField holds a numeric value that can be edited.
Paint controls options applied when drawing.
Panel is the basic user interface element that interacts with the user.
Path holds geometry.
PathEffect affects the geometry of a drawing primitive before it is transformed by the canvas' matrix and drawn.
PathOpPair holds the combination of a Path and a PathOp.
Pattern holds the information necessary to draw an image in a pattern.
PopupMenu represents a clickable button that displays a menu of choices.
PopupMenuTheme holds theming data for a PopupMenu.
ProgressBar provides a meter showing progress.
ProgressBarTheme holds theming data for a ProgressBar.
RadioButton represents a clickable radio button with an optional label.
RadioButtonTheme holds theming data for a RadioButton.
RichLabel represents non-interactive text and/or a Drawable.
RichLabelTheme holds theming data for a RichLabel.
SamplingOptions controls how images are sampled.
ScrollBar holds the data necessary for tracking a scroll bar's state.
ScrollBarTheme holds theming data for a ScrollBar.
ScrollPanel provides a scrollable area.
ScrollPanelTheme holds theming data for a ScrollPanel.
Separator provides a simple vertical or horizontal separator line.
SeparatorTheme holds theming data for a Separator.
Shader specifies the source color(s) for what is being drawn.
SimpleTableModel is a simple implementation of TableModel.
SizedDrawable allows the Drawable's logical size to be overridden.
SortState holds data regarding a sort state.
Stop provides information about the color and position of one 'color stop' in a gradient.
SVG holds an SVG.
Table provides a control that can display data in columns and rows.
TableDragData holds the data from a table row drag.
TableDrop provides default support for dropping data into a table.
TableHeader provides a header for a Table.
TableHeaderTheme holds theming data for a TableHeader.
TableTheme holds theming data for a Table.
Tag represents non-interactive text and/or a Drawable with a bubble around it.
TagTheme holds theming data for a Tag.
Text holds data necessary to draw a string using font fallbacks where necessary.
TextBlob represents runs of text for a font, that may be drawn on a Canvas.
TextCache provides a simple caching mechanism for Text objects.
TextDecoration holds the decorations that can be applied to text when drawn.
ThemeColor holds a pair of colors, one for light mode and one for dark mode.
TooltipTheme holds theming data for a Tooltip.
UndoEdit provides a standard Undoable.
UndoManager provides management of an undo/redo stack.
Well represents a control that holds and lets a user choose an ink.
WellTheme holds theming data for a Well.
Window holds window information.

# Interfaces

Border defines methods required of all border providers.
CellFactory defines methods all cell factories must implement.
ColorProvider allows for different types of objects that hold a color to be used interchangeably.
Dockable represents a dockable Panel.
DockLayoutNode defines the methods for nodes within a DockLayout.
Drawable represents a drawable object.
FileDialog represents the common API for open and save dialogs.
Font holds a realized FontFace of a specific size that can be used to render text.
Ink holds a color, pattern, or gradient to draw with.
Layout defines methods that all layouts must provide.
Menu holds a set of menu items.
MenuFactory provides methods for creating a menu bar and its menus.
MenuItem describes a choice that can be made from a Menu.
OpenDialog represents a dialog that permits a user to select one or more files or directories.
PageProvider defines the methods required of a PDF producer.
Paneler is used to convert widgets into the base Panel type.
SaveDialog represents a dialog that permits a user to select where to save a file.
Stream provides a way to use different streams for the same purpose.
TabCloser defines the methods that must be implemented to cause the tabs to show a close button.
TableColumnHeader defines the methods a table column header must implement.
TableModel provides access to the root nodes of the table's data underlying model.
TableRowConstraint defines the constraints required of the data type used for data rows in tables.
TableRowData provides information about a single row of data.
Undoable defines the required methods an undoable edit must implement.
UndoManagerProvider defines the method a provider of UndoManager should define.

# Type aliases

ArcSize holds the relative size of an arc.
BlendMode holds the mode used for blending pixels.
Blur holds the type of blur to apply.
CheckState represents the current state of something like a check box or mark.
Color contains the value of a color used for drawing, stored as 0xAARRGGBB.
ColorChannel specifies a specific channel within an RGBA color.
Cursor provides a graphical cursor for the mouse location.
Direction holds the direction of a path.
EncodedImageFormat holds the type of encoding an image was stored with.
FillType holds the type of fill operation to perform, which affects how overlapping contours interact with each other.
FilterMode holds the type of sampling to be done.
FilterQuality holds the image filtering level.
FontHinting holds the type of font hinting to use.
FontMetrics holds various metrics about a font.
FontSlant holds the slant of a font.
FontSpacing holds the text spacing of a font.
FontWeight holds the weight of a font.
Image holds a reference to an image.
InvertStyle holds the type inversion.
KeyCode holds a virtual key code.
MipMapMode holds the type of mipmapping to be done.
Modifiers contains flags indicating which modifier keys were down when an event occurred.
PathEffect1DStyle holds the 1D path effect.
PathOp holds the possible operations that can be performed on a pair of paths.
PDFMetaData holds the metadata about a PDF document.
PointMode controls how DrawPoints() renders the points passed to it.
Sizer returns minimum, preferred, and maximum sizes.
StartupOption holds an option for application startup.
StrokeCap holds the style for rendering the endpoint of a stroked line.
StrokeJoin holds the method for drawing the junction between connected line segments.
TileMode holds the type of tiling to perform.
TrimMode holds the type of trim.
WellMask is used to limit the types of ink permitted in the ink well.
WindowOption holds an option for window creation.