Native GUI
The SDK-drawn interface: components, widgets, LookAndFeel, text, images, windows, the plugin editor.
- 95headers
- 232public types
- Guides: The native editor
Start with
Headers 95
- gfx/accessibility.hWalking the tree a screen reader would want to see.AccessibleRoleMapping, AccessibleNode
- gfx/accessibility_mac.hThe macOS end of accessibility: handing our component tree to NSAccessibility.AxPoint, AxSize, AxRect, AppKitAccessibilityApi, MacAccessibilityRoot
- gfx/accessible_info.hWhat a component IS, as opposed to what it looks like.AccessibleInfo
- gfx/alert.hTelling the user something, and asking them something.Overlay, AlertOverlay, CallOutBox
- gfx/animated_position.hAnimatedPosition: a position that a finger throws, and that carries on moving after it lets go -- and ViewportDragScroller, which uses two of them to scroll a Viewport by dragging its content.ContinuousWithMomentum, SnapToPageBoundaries, AnimatedPosition, ViewportDragScroller
- gfx/animator.hBounds that move over time rather than jumping.CubicBezierEasing, SpringEasingOptions, Animator, ValueAnimator
- gfx/audio_display.hTwo ways to look at audio: a scope that scrolls, and a waveform that sits still.AudioVisualiser, WaveformView
- gfx/backing.hThe backing store a window peer paints into, and the one place scale lives.Backing
- gfx/bidi.hThe Unicode Bidirectional Algorithm (UAX #9, Unicode 15): which way each character of a paragraph runs, and the order a line of it is shown in.BidiParagraph
- gfx/bitmap.hBitmap: premultiplied RGBA8, and the antialiased rasteriser that fills it.Bitmap, TiledImage, Rasteriser
- gfx/box2d_renderer.hBox2DRenderer: draws a Box2D world through this SDK's Graphics.Box2DRenderer
- gfx/button_tracker.hButtonTracker: an analytics event every time a button is clicked.ButtonTracker
- gfx/cached_image.hStandardCachedComponentImage: what Component::setBufferedToImage installs.StandardCachedComponentImage
- gfx/clipboard.hThe system clipboard.Clipboard
- gfx/code_editor.hA source code editor: a document kept as lines, tokenisers that colour it, and the component that shows and edits it.CodeDocument, CodeTokeniser, CPlusPlusCodeTokeniser, LuaTokeniser, XmlTokeniser +1
- gfx/colour.hColour, and blending.Colour, PremulColour
- gfx/colour_selector.hColourSelector: choosing a colour.ColourSelector
- gfx/component.hComponent: the tree, and the mouse.PenDetails, PointerInput, MouseEvent, KeyPress, DragSource +2
- gfx/component_builder.hComponentBuilder: a component tree built from a data tree, and kept in step with it.ComponentBuilder
- gfx/component_listeners.hThe hooks a component offers to things that are not it: listeners for its movement and its mouse events, a cached image to stand in for its painting, a target for dragged text, and an observer of every paint.ComponentListener, MouseListener, CachedComponentImage, TextDragAndDropTarget, ComponentPaintObserver
- gfx/concertina.hStacked sections that open and close.ConcertinaPanel
- gfx/containers.hA list, a set of tabs, and a progress bar.ListBox, TabbedComponent, ProgressBar
- gfx/displays.hThe screens, and which one something is on.Display, Displays
- gfx/document_window.hDesktop windows for an application: TopLevelWindow, ResizableWindow and DocumentWindow -- a component tree in a window of its own, with a title, close and minimise boxes, limits on its size, full screen and a menu bar.TopLevelWindow, ResizableWindow, DocumentWindow
- gfx/drawable_component.hDrawableComponent and OwningDrawableComponent: a component that IS a picture, scaled into its bounds.DrawableComponent, OwningDrawableComponent
- gfx/effects2d.hBlur, drop shadows, rectangle fitting, and the named colours.Blur, DropShadow, RectanglePlacement
- gfx/file_browser.hChoosing a file from inside the editor.FileBrowser
- gfx/file_chooser.hThe pieces of a file chooser drawn inside the editor.FilePreviewComponent, ImagePreviewComponent, FileListComponent, FileTreeComponent, FileChooserDialogBox +2
- gfx/font.hFont: a typeface at a size, and drawing text with it.CharacterLayout, Font
- gfx/font_match.hFontMatcher: a CSS font-family list, a weight and a style, to a typeface.FontMatch, FontMatcher
- gfx/geometry.hPoints, rectangles, lines and affine transforms.Point, Rect, PixelRect, Transform
- gfx/gradient.hColour that varies across a shape.ColourStop, ColourGradient
- gfx/graphics.hGraphics: the drawing API a component paints through.Graphics
- gfx/group.hA titled box around a set of controls.GroupComponent
- gfx/image.hThe things the reference builds around an image -- its storage type, its scale, and a cache of decoded ones -- in this SDK's terms: around a Bitmap.ImageType, NativeImageType, SoftwareImageType, ScaledImage, ImageCache
- gfx/key_mapping_editor.hKeyMappingEditorComponent: letting the user choose the keys.KeyMappingEditorComponent
- gfx/layout.hFlexBox and Grid: two ways to place things without arithmetic in resized().Margin, FlexItem, FlexBox, TrackSize, GridItem +1
- gfx/line_break.hWhere a line of text may end: the Unicode Line Breaking Algorithm (UAX #14).
- gfx/lookandfeel.hLookAndFeel: where a widget's appearance lives, separately from what it does.WidgetState, LookAndFeel
- gfx/lookandfeel_versions.hLookAndFeel_V1, V2, V3 and V4: the reference's four generations of default appearance, so a port can keep the face it had.LookAndFeel_V1, LookAndFeel_V2, LookAndFeel_V3, LookAndFeel_V4
- gfx/maths3d.hThree-dimensional vectors, 4x4 matrices, quaternions, and an arcball that turns mouse drags into a rotation.Vector3D, Matrix3D, Quaternion, Draggable3DOrientation
- gfx/menu_bar.hA menu bar, and the same menus as a list for a narrow editor.MenuBarModel, MenuBarComponent, BurgerMenuComponent
- gfx/message_box.hThe operating system's own message boxes, for an application: a message, an icon, and up to any number of buttons, answered synchronously or through a callback, and closable from code.MessageBoxOptions, ScopedMessageBox, NativeMessageBox
- gfx/midi_keyboard.hAn on-screen keyboard.MidiKeyboard
- gfx/mouse_input.hMouseInputSource: the mouse, every finger and the pen, as separate pointers -- with a pen's pressure, tilt, rotation and eraser. And MouseInactivityDetector, which watches them stop.PointerSample, MouseInputSource, MouseInputSources, MouseInactivityDetector
- gfx/movement_watcher.hComponentMovementWatcher: told when a component moves on screen -- because it moved, or because ANY of its parents did -- when it is resized, when it might have been shown or hidden, and when the window it is in appears or goes.ComponentMovementWatcher
- gfx/mpe_keyboard.hAn on-screen keyboard for MPE: every sounding note drawn as a circle that slides sideways with its pitch bend, rises with its timbre and swells with its pressure -- and a mouse that plays it the same way.MPEKeyboardComponent
- gfx/multi_document.hMultiDocumentPanel: several documents in one area, as tabs or as windows.MultiDocumentPanelWindow, MultiDocumentPanel
- gfx/native_editor.hThe native editor as a plugin format sees it: one object with a window in it, opened into whatever handle the host passes down.PopupWindow, TooltipWindow, NativeEditor
- gfx/native_embed.hA platform control inside a component tree: HWNDComponent, NSViewComponent, XEmbedComponent and ActiveXControlComponent.HWNDComponent, ActiveXControlComponent, NSViewComponent, XEmbedComponent
- gfx/nsview_component.hNSViewComponentWithParent: a native NSView inside an editor's component tree, on macOS.NSViewComponentWithParent
- gfx/opengl.hOpenGL inside a native editor: a context attached to a component, the renderer callbacks, shaders, textures, framebuffers, and the component's own software-rendered painting composited over the GL picture.OpenGLRenderer, OpenGLContext, OpenGLHelpers, OpenGLShaderProgram, OpenGLTexture +4
- gfx/opengl_api.hThe OpenGL entry points, loaded by hand, and the three platform halves of a GL surface: WGL on Windows, NSOpenGLContext on macOS, GLX on X11.OpenGLPixelFormat, OpenGLFunctions
- gfx/paint_diagnostics.hComponentPaintDiagnostics: how long each component takes to paint, and where the repaints land.ComponentPaintDiagnostics
- gfx/parallelogram.hParallelogram: a rectangle after an affine transform, as three corners.Parallelogram
- gfx/path.hPath: the shape everything is drawn from.Contour, Path
- gfx/plugin_editor.hBinding the native UI to plugin parameters, and the editor a plugin gets when it says nothing about its own.EditorHost, SliderAttachment, ButtonAttachment, ComboAttachment, GenericEditor +1
- gfx/popup.hPopupMenu: a list that opens over everything, takes the mouse, and closes on the next click wherever it lands.PopupMenu, PopupContent
- gfx/popup_item.hOne row of a popup menu.PopupItem
- gfx/popup_overlay.hA PopupMenu shown INSIDE the editor, and driven from the keyboard.PopupMenuOverlay
- gfx/preferences_panel.hA preferences window's contents: a row of page buttons along the top, and the chosen page below them.PreferencesPanel
- gfx/preset_bar.hThe preset bar: the strip along the top of an editor that says which preset is playing and does everything a user does with presets.PresetBar
- gfx/progress_window.hThreadWithProgressWindow: a job on a thread of its own, with a window that shows how far it has got and a button that asks it to stop.ThreadWithProgressWindow
- gfx/region.hA set of rectangles, and the reason it exists: partial repaint.RectangleList
- gfx/relative_position.hRelative positioning: a component's edges as EXPRESSIONS against its parent, its siblings and named markers -- "parent.width - 20", "slider.right + 5" -- re-evaluated whenever anything they mention moves.RelativeScope, RelativeCoordinate, MarkerList, RelativePoint, RelativeRectangle +3
- gfx/resizer.hDragging an editor's edges, not just the corner in the bottom right.ResizableBorder
- gfx/selection.hChoosing several things, and moving them.SelectedItemSet, LassoComponent, ComponentDragger
- gfx/side_panel.hSidePanel: a drawer that slides in over the editor from one edge.SidePanel
- gfx/splash_screen.hSplashScreen: a borderless window that shows an image while an application starts, and fades away once it has been up for long enough.SplashScreen
- gfx/splitter.hPanes the user can resize, and the bar between them.StretchableLayoutManager, StretchableLayoutResizerBar
- gfx/stroke.hStroking: turning a path into the outline of a pen drawn along it.StrokeStyle, Stroker
- gfx/svg.hSVG, into Paths this rasteriser already knows how to draw.SvgShape, DrawableText, Drawable
- gfx/system_font.hFinding a typeface on the machine the plugin is running on.
- gfx/system_tray.hAn icon in the system tray (the notification area, the macOS menu bar's status items), and the desktop's own local notifications.SystemTrayIconComponent, PushNotifications
- gfx/table.hA list with columns you can sort and resize.TableColumn, TableListBox
- gfx/text_area.hA text field of several lines.TextArea
- gfx/text_drag.hDragging TEXT: between components, in from other applications, and out to them.TextDragDispatcher
- gfx/text_editor.hA single-line text field.TextEditor
- gfx/text_input.hComposed text: what an input method has typed before it has decided what it typed.TextComposition, TextInputTarget, TextRange16, TextInputSession
- gfx/text_shaper.hOpenType shaping: a run of text in one script and one direction, made into the glyphs and positions the font says it is drawn with.ShapedGlyph
- gfx/toolbar.hToolbar: a row of buttons the user can rearrange.ToolbarItemComponent, ToolbarItemFactory, ToolbarButton, Toolbar, ToolbarItemPalette
- gfx/tooltip.hTooltips, and the corner you drag to resize an editor.TooltipManager, BoundsConstrainer, ResizableCorner
- gfx/treeview.hA tree you can open, close and walk.TreeNode, TreeView
- gfx/truetype.hA TrueType and OpenType parser: glyph outlines out of a .ttf or an .otf, as ordinary Paths -- quadratic glyf outlines and cubic CFF ones alike.FontAxis, ColourLayer, ImageLayer, Typeface
- gfx/uia_win32.hThe Windows end of accessibility: handing our component tree to UI Automation.ElementProvider, RootProvider
- gfx/value_box.hA readout you can type into.ValueBox
- gfx/value_tree_state_attachments.hAudioProcessorValueTreeState's widget attachments: SliderAttachment, ButtonAttachment and ComboBoxAttachment, as the reference nests them.AudioProcessorValueTreeState::SliderAttachment
- gfx/vblank.hVBlankAttachment: a callback once per display refresh, on the UI thread.VBlankAttachment
- gfx/video.hVideo: a file played inside an editor, and frames from a camera -- both as Bitmaps, drawn through Graphics like everything else.VideoReader, VideoComponent, CameraDevice
- gfx/viewport.hA window onto something bigger than itself, and the bar that moves it.ScrollBar, Viewport
- gfx/widgets.hSlider, Button, Label, ComboBox.Widget, Slider, Button, Label, ComboBox
- gfx/widgets2.hA range slider, and a button with a picture on it.RangeSlider, IconButton, ImageComponent, HyperlinkButton
- gfx/window_cocoa.hThe Cocoa window, so the native UI runs on the third platform.CoreGraphicsApi, NativeWindowCocoa
- gfx/window_win32.hThe Win32 window a native editor lives in: the platform peer for a component tree.NativeWindow
- gfx/window_x11.hThe X11 window, so the native UI is not a Windows-only thing.XlibApi, XdndAtoms, NativeWindowX11