Commit Graph
37 Commits
Author SHA1 Message Date
fanlusky 2ac86ea0e2 Stop mapping all Unicode through CJK fonts and cut D2D working-set growth
Custom font fallback no longer covers the whole BMP/SIP, so Segoe UI Emoji
can paint color glyphs again; CJK still prefers Noto Sans SC then YaHei.
Drop GaussianBlur compatible targets during BeginDraw (they retained GPU
memory as the candidate window grew), grow the composition swapchain in
64px steps without shrinking, and reuse Card chrome plus cached text
formats instead of reallocating them every layout.
2026-09-02 16:25:54 +08:00
fanlusky 5421c1dd1b Add SVG icon rendering, toggle switch, and font fallback for MenuFlyoutItem
MenuFlyoutItem gains leading SVG icons (ID2D1SvgDocument), an optional
trailing toggle switch, and content-based width measurement so tray-style
menu items match the HTML menu layout. Default UI font is now Noto Sans SC
with Microsoft YaHei fallback via IDWriteFontFallback; CreateTextFormat
gracefully falls back when the primary family is missing.
2026-09-02 16:03:57 +08:00
fanlusky d16f9f3fea Add DirectComposition hosting and candidate-list chrome for the IME window
Adopt an existing HWND, render through D3D11/DXGI/DirectComposition, and
extend CandidateList with horizontal layout, skin colors, click-to-commit,
and a D2D context menu. Preedit TextBlock draws a caret in a fixed insert
slot so neighboring glyphs reflow instead of using letter-spacing; the
default end caret sits slightly after the last character.
2026-09-02 15:29:14 +08:00
fanlusky 64c08a7c02 Adjust some controls for emoji panel. 2026-08-15 02:32:00 +08:00
fanlusky f3c7a9557a Set the initial position setting method for the window. 2026-07-20 23:22:05 +08:00
fanlusky 548330b8cf Make a demo of an on-screen keyboard. 2026-07-15 18:22:50 +08:00
fanlusky 3a41372f24 Adjust font size and some layouts 2026-07-15 15:50:50 +08:00
fanlusky 59a73b8476 Optimize the emoji panel size. 2026-07-15 15:43:58 +08:00
fanlusky 05a4ada19d Optimize the emoji panel. 2026-07-15 15:34:53 +08:00
fanlusky 604cf987b1 emoji panel demo step01 2026-07-15 14:49:36 +08:00
fanlusky 4f62123699 Support image render 2026-07-15 14:39:55 +08:00
fanlusky e210c8eb4c Allow popups to scroll out of view 2026-06-19 13:00:35 +08:00
fanlusky d2ca118d89 Add candidate hover highlight 2026-06-19 11:52:43 +08:00
fanlusky 33350ab7c2 Trim candidate header text metrics 2026-06-19 11:34:30 +08:00
fanlusky 718d4f9559 Align candidate preview typography 2026-06-19 11:06:54 +08:00
fanlusky 41f4571bd2 Add candidate popup keyboard navigation 2026-06-17 20:20:17 +08:00
fanlusky 10cfb70d66 Add candidate popup preview primitives 2026-06-17 19:08:27 +08:00
fanlusky e1156b32e2 Highlight scrollbar on hover 2026-06-17 16:44:51 +08:00
fanlusky 3aa1a650a6 Add centered text alignment for TextBlock 2026-06-16 18:28:50 +08:00
fanlusky f531201154 Fix popup spacing and scroll repositioning 2026-06-16 17:09:32 +08:00
fanlusky 40eb7d297b Cache text layouts for button and list controls 2026-06-16 16:29:24 +08:00
fanlusky 5c7236cfd9 Reuse TextBlock text layouts across measure and render 2026-06-15 06:52:54 +08:00
fanlusky 55293db8d6 Cache render brushes and text formats 2026-06-14 20:05:24 +08:00
fanlusky d951c0e4e6 Revert "Add keyboard navigation and menu list support"
This reverts commit a1d4df897e.
2026-06-14 19:57:00 +08:00
fanlusky a1d4df897e Add keyboard navigation and menu list support 2026-06-14 19:54:34 +08:00
fanlusky 0b8063299a Add ContextMenuHost and right-click popup routing 2026-06-14 19:45:53 +08:00
fanlusky 84b6636f89 Add ComboBox built on the popup overlay system 2026-06-14 19:41:58 +08:00
fanlusky 10b7b94c29 Add popup host and scene overlay popup system 2026-06-14 19:35:51 +08:00
fanlusky d6fde30b88 Add theme system and optimize dirty layout routing 2026-06-14 19:29:15 +08:00
fanlusky db59ca7365 Add parent-child relationship of the control tree and bubble-style invalidation propagation. 2026-06-14 15:17:44 +08:00
fanlusky df881f81bf Add invalidation mechanism 2026-06-14 15:14:03 +08:00
fanlusky 6bb9ca27d8 Add more gui controls, make caret of search box align center in vertical. 2026-06-12 23:48:02 +08:00
fanlusky ff58d90d34 Change the demo page to a scrollable layout and fix the issue of buttons being too wide in the initial state. 2026-06-12 22:53:09 +08:00
fanlusky f183070834 Add some basic controls 2026-06-12 22:42:35 +08:00
fanlusky 56199bdd87 Optimize some style 2026-06-12 19:33:40 +08:00
fanlusky 88f36a0ed9 Fix the issue with DPI conversion. 2026-06-12 15:03:39 +08:00
fanlusky f58839114c Build the basic framework of the project. 2026-06-12 10:03:15 +08:00