Repository navigation
Conversation
a scroll region takes the wheel only when it can move the way the wheel turns. one at its limit in that direction, or with no overflow, leaves it for the enclosing region, so nested regions chain and the innermost one that can move takes it.
A new slider_fill kind paints the track from its start to the handle's middle in the slider's state, clear in the built-in themes so the look is unchanged until a theme opts in. A slider_handle min_w of 0 leaves the handle out for a fill alone.
The caret was as tall as the line, ascent, descent and gap, so with a larger text style it reached past the caption it marks. It now takes the section style's min_w (section.min_w), and with none the caption's ascent in the current text style, centred between the line's top and the baseline. The caption and the heading's width step over the caret's size. The gallery and panel goldens change only in their section headings: the caret is 7 pixels rather than 8 and the caption one pixel further left.
post_keyed names a toast by a key, copied like its text, and a later post under the same key replaces that toast in place: it keeps its place in the stack and restarts its clock, without fading in again if it was on screen. withdraw fades a keyed toast out from the next show, or drops it unseen if no frame showed it. show_in anchors the stack inside any rect, as show anchors it inside the surface. post and show are unchanged.
central makes a space's root its central node, a leaf that keeps its share of the layout while empty and never collapses. while it holds no live window the space paints its background and takes its claims only around it, so what the app draws and claims beneath the space shows through and takes the pointer there. central_area reports its rect this frame. the central node is saved and loaded with the layout.
…g section a toggle draws a scene that claims its clicks, then a dock space over it with a panel docked beside its empty central node.
feat(#164): pass the wheel up from a scroll region that cannot move
fix(#166): section caret size independent of line height
# Conflicts: # demo/gallery/src/bin/gallery.snap
feat(#168): a passthrough central node in a dock space
feat(#165): keyed, replaceable toasts anchored to any rect
feat(#167): slider value fill
…line the row caret takes its side from the tree item style's min_w, or with none the caption's ascent, through the section caret's helper, now public and keyed by style kind
A table takes the vertical wheel only when it can move vertically the way it turns, and the horizontal wheel only when it can move sideways that way, leaving the rest for the enclosing region. The context tracks the horizontal wheel apart from the vertical one (hwheel_taken), so a table at its vertical end still scrolls sideways while the dock around it takes the vertical wheel.
A docked window's scroll region now sits within the leaf rect padded by the theme.WINDOW style, as a floating body is, so a window's content is laid out the same docked or floating. The gallery golden takes the default bottom padding in its docked columns.
# Conflicts: # demo/gallery/src/bin/gallery.snap
…front tab dock.insert docks a window at an index in a leaf's tab stack, renumbering the other tabs around it and moving its tab in the bar when the bar has placed it. dock.select brings a docked window to its leaf's front. a default layout no longer has to write Docked.rank or Node.front.
feat(#175): tab position and front tab when adding to a dock
chore: regenerate the gallery golden with the slider fill
fix(#180): a pushed fill gives a solid face
theme.Style.overflow chooses whether a label too wide for its box is clipped at the box or cut with an ellipsis at its end, ellipsis by default. text.fit_box and text.fit_pair draw a label, or a label and a value, unchanged when they fit and fit to the box otherwise.
buttons and their groups, segmented choices, toggles, sliders, dropdowns and combos with their options, tabs and the tab overflow list, window and modal titles, section headings, table headers, list rows and progress text draw their labels through text.fit_box, so a label too wide for its box no longer spills over its neighbours.
the gallery's closable tab label was clipped mid-glyph at its close box, and is now cut with an ellipsis.
# Conflicts: # demo/gallery/src/bin/gallery.snap
add docks through insert at an index past the last tab, so a window takes one more than the leaf's highest rank and an already placed tab moves to the end of its bar. the draw-time sort breaks equal ranks by id, as insert's does, so the order no longer follows the state store's walk.
fix(#177): clip labels to their box
fix(#190): keep add order for windows in a leaf before its first draw
each field table row carries lo and hi, the range a UNIT_FACTOR value takes, and 0 for the other units. a test holds the table to it.
the hand-coded 0 to 1 cap on factors and 0 to 2 on the motion fields give way to each field's own lo and hi.
…old caps could not give
tabs.width rebuilt every tab's width as least plus the rest times the shrink factor. at a factor of one that sum can land a hair short of the natural width in floating point, so the label box came out a fraction of a pixel narrower than the label and fit_box cut it with an ellipsis. a tab the bar has room for now takes its natural width directly. the test sweeps paddings that do not land on whole pixels and fails without the fix.
feat(#192): theme factor fields state their own range
fix(#194): an unshrunk tab is exactly its natural width
menu.begin_main_bar carves one control row off the top of the free area with context.carve, as a docked container takes its strip, so free_area read after it starts below the bar and a dock space placed from it lies beneath. begin_bar and begin_main_bar share one bar_in over the row each takes, so headers, shortcuts, keyboard navigation and painting are the same, closed by the same end_bar.
feat(#196): a main menu bar takes its row from the free area
…wn whole a box sized to exactly its label, as a tab or a fit-width button builds it, is formed from absolute coordinates, and far from the left edge their rounding leaves it a hair narrower than the label, which fit_box then cut with an ellipsis. the comparison is of float pixel widths, so it now allows FIT_SLACK, a sixty-fourth of a pixel. the test draws labels in boxes sized to them at offsets from 900 to over 5000 and fails without the fix.
a tab's body is drawn short of the separator after it (the tab style's margin.r), but the strip measured and laid tabs out by their body width alone, so every unshrunk tab's body came out one separator narrower than its label and fit_box cut the label with an ellipsis. the strip now measures, scrolls and places tabs by their room, the body and the separator, read once into the bar's geometry. the test checks each roomy tab is drawn its whole natural width, and fails with the old layout.
fix(#198): a tab's label is cut with room to spare
#198 lays tabs out with their separator, so the gallery's docked title tab is one pixel wider and draws its label whole. the old golden had the bug in it: the title cut to an ellipsis. every changed line is in the title row.
chore: regenerate the gallery golden with the whole title tab
chore(release): 0.11.0
58 of 60 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integration merge of dev for 0.11.0. Release commit in #201.