Guides¶
Each guide covers one part of Strata in depth: the rules, the defaults, the edge cases and working code. Every Java example on these pages is compiled and tested against Strata by this site's build, so it matches the current API.
| Guide | Read it to learn |
|---|---|
| Components | What every component has: the tree, parents and ancestors, drawing order and z index, state flags, focus, cursors, tooltips, bounds |
| Layout | How sizes and positions are decided, margins and padding, every container, the spacer, and scrolling |
| Controls | What each control does, key by key: labels and images, buttons, checkboxes, sliders, text fields, lists, tables, trees, drop-downs, menus, pickers, windows, message boxes, tabs, progress bars and separators |
| Appearances | How values of one type show their icon, name and tooltip in every list, table and combo box |
| Overlays and tooltips | Popups, modal dialogs, toasts, how overlays are layered, tooltips and held modifiers |
| Events | Handlers, priorities, Pre and Post events, cancellation, bubbling, clicks and drags |
| Data binding | Keeping controls in step with states in a model, one way or two |
| Event snapshots | Comparing a component's state when an event fired with its state now |
| Input and focus | Keys, modifiers, focus rules, tab order, text input, what a key meets, devices |
| Commands and shortcuts | Commands shared by buttons, menu items and switches, shortcuts and their scopes, mnemonics, default and cancel buttons |
| Screens | Opening screens with Strata.screens(), the lifecycle, handles, closing and titles, rebuilding, screens above screens, stacks and theme reloads |
| Threads | The UI thread, handing work over from other threads, and what is checked |
| Themes | Style keys, paints, sprites, nine-slices, themes by id and theme files |
| Text | Text styles, spans, measurement and wrapping |
| Internationalization | Right to left screens, mixed direction text, plurals, numbers in the user's language and grapheme clusters |
| Animation | Moving properties over time, easings, fading, the built-in motion and testing it |
| Drag and drop | Transfers between lists, fields and other applications, drop targets, effects and edge scrolling |
| Clipboard | Copying and pasting text, files, images and objects of your own |
| File dialogs | Open, save and folder dialogs the platform provides |
| Testing | Driving screens without an engine: finding components, input, the clock and checking the result |
| Extending Strata | Changing built-ins through their events, composition, composites of private parts, custom components with their own events, every hook and when it runs, and custom layouts |