Commit Graph
15 Commits
Author SHA1 Message Date
BFlat 1664f6de66 Merge pull request #7139 from dotCooCoo/feat/ctb-type-tools-font-fill
Contextual Task Bar: the Type tools show font family, style, size and Fill
2026-11-14 01:54:39 +07:00
dotCooCoo f7ba1d045a Contextual Task Bar: the Type tools show font family, style, size and Fill
While a Type tool (Type, Area Type, Type on a Path and their vertical
versions) adds or edits type, the task bar shows the font family and
style menus, the Font Size combo and the Fill chip. Type selected with a
selection tool shows the same font controls beside its Create Outlines,
conversion and Type on a Path items. The controls change what the
Character panel's would: the selected characters, else every selected
type object. The Touch Type tool still shows no bar.

While a Type tool edits type, the Fill chip shows the selected
characters' fill, with "?" where their fills differ. On a canvas too
narrow for one row, the font controls go on a second row and narrow to
fit. Screen readers name each control.
2026-11-13 05:50:00 -08:00
HassanKhan b219decd75 Character panel: the highlighted font height icon keeps its contrast (#6304)
On the open list's row of the current reference, drawn on the
accent-tinted selection fill, the icon draws its measure in the name's
colour instead of the accent, which lost its contrast there. The other
rows and the closed field keep the accent.
2026-11-13 14:19:58 +05:00
HassanKhan 6dcbf804ca Character panel: icons for the font height references (#6304)
The Set Font Height Reference dropdown shows an icon before each
reference's name, in the open list and in the closed field: Em Box
frames the whole square around an A, Cap Height and x-Height put a bar
from the baseline to the top of a capital A or a lowercase x, and ICF
Box frames a square inset in the em square. The icons are painted with
egui's painter in the row's text colour and the theme accent.

widgets::dropdown_icon_names is a dropdown_names whose options carry a
painted icon.
2026-11-13 13:28:16 +05:00
dotCooCoo 549391a50d Menus: a scrolling list keeps each label on one line
A popup measures its list on the first frame, when the scroll area does
not yet show its bar. When the bar then appeared, its column took its
width from the items, and the widest label wrapped onto two lines:
Distort & Transform in the Add New Effect menu, and Black and White Logo
in the Image Trace presets, in short windows.

menu_scroll now lays the items out at least as wide as on the popup's
first frame, so the bar's column widens the popup instead. That width
is kept until the popup closes and is never wider than the window has
room for. The items are laid out in the same child Ui on every frame,
so their ids do not change when the width does.
2026-11-10 20:23:42 -08:00
dotCooCoo ef07aecd96 Menus: a long menu stays in one place instead of jumping between two places
A scrolling menu list took its height from its own top down to the
window's bottom bars. egui picks a popup's side from its size on the
previous frame and moves a popup that does not fit back into the
window, so the list's height changed with where the popup was drawn.
In a short window the Add New Effect menu and other long menus moved
between two places while open, and a menu that did not fit crept a
few points per frame.

The list now takes its height from the room below and above the
button, row or point it opens from: below while that side leaves the
120 pt minimum, otherwise on the side with more room. A submenu
measures down from its row's top or up from its row's bottom. The
change is in menu_scroll, so it applies to every menu built on it.
2026-11-10 18:29:20 -08:00
Sven Lafebre 332e8fe15c #6429: a value typed in a Stroke popup sticks when a click outside closes it
The Properties panel's Stroke link and the Appearance panel's Stroke: row open
the Stroke panel as a popup. A click outside closed it without drawing it
again, so the dash field (or any other field in it) never saw itself lose the
keyboard, and what was typed went back. A popup closing while one of its
fields has the keyboard now draws once more first: the field lets go of the
keyboard to the click and commits, as it does in a panel. The Appearance
popup closes on the press, before it is a click, so for that last frame a
press is what lets go of the keyboard. Escape still drops what was typed.
2026-11-10 19:57:24 +01:00
dotCooCoo 19fd8d1d5e Control bar: the panel menu and the gripper dock it to the top or the bottom of the window
Squashed from #6090 onto main.
2026-11-08 12:47:51 +07:00
dotCooCoo c952b8d298 Fix #5347: a floating panel's menu scrolls inside its window
The main window's menu floor was stored once for the whole egui context,
so a menu in a panel's OS window stopped at the main window's bottom bars
instead of its own edge. The floor is now kept per window, and a window
with no recorded floor uses its bottom edge. A menu list is also never
taller than the window, so the last items of a menu stay reachable in a
100 pt window, below the 120 pt minimum.

The Digits, Stylistic Sets, Save Selection and Move to Group submenus,
the libraries menu, the Color Guide's Limit to Library menu and the Layers
panel's Filter popup now scroll the same way.
2026-11-08 11:22:39 +07:00
dotCooCoo 80f51a62da Type: stop hidden font fields from capturing wheel input 2026-11-03 16:03:40 +07:00
dotCooCoo 2a95625b99 Type: step font families with the mouse wheel
Apply wheel steps over the closed family fields in Character, Properties and Control, preserving event order and one undo step per effective notch. Document the supported controls and the application choices. Fixes #5253.
2026-11-03 16:03:40 +07:00
dotCooCoo 41dda1029f Character: Cmd/Ctrl+Alt+K highlights the kerning and Cmd/Ctrl+Alt+Shift+F highlights the font name
Squashed from #4390 onto main.
2026-10-29 20:48:21 +07:00
Dylan M. Taylor 55dddf6adf Extract UI event and rendering helpers 2026-10-28 16:44:17 +00:00
aiongg 13d837363d Dropdowns: menus grow back after a search with no matches (#4337)
* chore(deps): pin craft-libs to 62bb0e1d (shared combo box)

* fix(ui-egui): dropdown menus grow back after their contents shrink

Every combo box is craft_ui::ComboBox, whose menu follows its contents'
height while it is open (egui#5225); clippy.toml bans egui::ComboBox.

The font family menu is a craft_ui::combo::Menu under its field, with the
search field and filters in its header and the family rows scrolling under
them, still laid out only in view. The menu keeps to the room on its side
of the field, so the list's minimum height and the popup's room are gone.

* fix(ui-egui): the shortcut import's target picker grows back after a search

Its search field, "No equivalent" and the row's choices are the header of
a craft_ui::combo::Menu, and Keyboard Shortcuts' entries scroll under
them. That was the last menu on the popup path that capped itself at the
room left, so that path and combo's `searchable` flag are gone.

* chore(deps): craft-libs 60d60d48 (dropdown fixes)

* chore(deps): craft-libs 4d7b82f7 (dropdown fixes)

* chore(deps): craft-libs 92d392cf (#387 merged)

* chore(xtask): pdf-deps expects craft-libs 92d392cf
2026-10-27 10:36:58 -04:00
aiongg 055d017603 refactor(ui-egui): move widgets.rs items to widgets/{blend,buttons,chips,color,drag,dropdowns,labels,numeric,panel_chrome,text,toggles}.rs 2026-10-26 21:45:33 +00:00