Commit Graph
42 Commits
Author SHA1 Message Date
Martín Lucas Golini 071bc5d697 Add optional smooth scrolling across UI scrollable widgets
Introduce UIScrollController to provide frame-rate-independent wheel
interpolation, touch dragging, and momentum for code editors, terminals,
scroll views, and scrollable widgets while preserving the legacy instant
scrolling path.

Add a UISceneNode-level smooth-scrolling policy. Embedded scenes inherit
the root scene setting, new widgets snapshot it during construction, and
setSmoothScrollEnabled() can optionally apply changes to existing widgets
across the complete embedded-scene hierarchy.

Move native macOS scrolling and title-bar helpers into PlatformHelper,
enable native momentum from UIApplication, and explicitly enable it in
ecode. Preserve precise SDL2 and SDL3 wheel deltas for fractional momentum
events without changing normal integer wheel steps.

Replace the separate editor and terminal preferences in ecode and eterm
with one global smooth-scrolling setting, including legacy configuration
migration, live updates, and localized settings text.

Improve UITouchDraggableWidget momentum handling and add regression tests
for scrolling interpolation, pixel-aligned editor positions, scene
inheritance, widget overrides, and immediate policy application.
2026-09-13 20:27:37 -03:00
Martín Lucas Golini acd19069c3 Add table/tree view CSS properties, UIModelCreator, and optimize string allocations
- Add CSS properties: editable, selection-type, selection-kind, icon-size,
  sort-icon-size, main-column, row-header-width, table-flags (pipe-separated),
  indent-width, expander-icon-size, table-model
- Create UIModelCreator static factory with 4 built-in models:
  widgettree, filesystem, diskdrives, cssproperties
- Eliminate 17 heap-allocating std::string copies in applyProperty()
  handlers across 12 files using String::iequals with const refs
- Replace table-flags token parsing with allocation-free String::splitCb
- Update cssspecification.md with all new property documentation

Fixed fall-through bugs in applyProperty.
Fixed status terminal button "Terminal" not setting the tooltip text correctly.
2026-07-28 00:15:04 -03:00
Martín Lucas Golini 46d365f1b3 Update TODO. 2026-07-26 16:38:17 -03:00
Martín Lucas Golini 0defa0ada3 Fix hex color string parsing.
UIMarkdownView now uses the HTMLFormatter::HTMLtoXML.
Removed formatting hack to force strict XML from HTML, now we should always use HTMLFormatter::HTMLtoXML.
2026-05-20 01:39:05 -03:00
Martín Lucas Golini dbae41fd85 Minor fix in md2html. Better error report in XML loading. 2026-03-23 13:23:19 -03:00
Martín Lucas Golini 9514b0fd73 Several general improvements and fixes across the UI: UIRichText, UITextSpan, UIImage, UIScrollView. 2026-03-08 03:05:17 -03:00
Martín Lucas Golini 1b1782bb2d I'll need this later.
Updated TODO.
2026-02-13 20:38:44 -03:00
Martín Lucas Golini 42981acbda Fix in Node::childAddAt.
Updated codicon and nonicons.
Added a few icons.
2025-03-04 20:43:24 -03:00
Martín Lucas Golini 7452bf204c Added text-overflow support.
Minor bug fix on app title.
2023-11-12 23:03:49 -03:00
Martín Lucas Golini e6bb1076d4 ecode: UIStackLayout fixes. Allow UITextView set text from the inner content. 2023-05-28 22:54:16 -03:00
Martín Lucas Golini de04dd3984 Moved and improved the widget inspector to a new UI tool class: UIWidgetInspector. 2022-10-21 02:28:12 -03:00
Martín Lucas Golini 54a177bc8e Added gravity-owner property to fix a bug in ecode document changed alert. 2022-10-14 23:48:37 -03:00
Martín Lucas Golini db57f39ae3 Added support to "cubic-bezier" timing function. 2022-09-08 20:14:07 -03:00
Martín Lucas Golini 0a70817ed1 Added UIDataBind: simple two way data binding between data and widgets.
UIDocFindReplace: first working version completed.
TextDocument: Fixed findTextLast when using case-insensitive search.
StyleSheet: Added StyleSheet::markerExists.
ecode: DocSearchController minor refactor.
2022-09-04 04:06:38 -03:00
Martín Lucas Golini 2b61bf02c7 Added markers to StyleSheet elements in order to be able to clean up the StyleSheet by markers (required by the UIEditor).
Updated pugixml.
2022-09-01 01:20:52 -03:00
Martín Lucas Golini d8c3a42a9f Improved CSS. Updated the TODO.md list. 2022-08-22 23:40:05 -03:00
Martín Lucas Golini cefb0e0a7c Minor fix in JS syntax definition.
ecode changed patch level.
2022-08-11 01:44:33 -03:00
Martín Lucas Golini 09114eea8a ecode: More terminal improvements. 2022-07-07 01:20:24 -03:00
Martín Lucas Golini aade7371f8 Added XML tags auto-close. 2022-04-02 21:14:36 -03:00
Martín Lucas Golini 375d1e66e8 Added Variant "String" support.
Added panel location configuration (left or right).
Added default key modifier (CTRL on Linux and windows, META on macOS, ALT on Haiku).
Optimized GlobalSearchController.
Allow using $FILENAME in linter warning pattern.
Optimized ProjectSearch.
Added TextDocument delete on close option (default for temporal files downloaded from the Internet).
2022-03-20 15:04:07 -03:00
Martín Lucas Golini 92cb3ce12a ecode: Added notification center. 2021-01-05 00:17:30 -03:00
Martín Lucas Golini 763683a818 Added Log levels support. 2020-08-31 01:36:12 -03:00
Martín Lucas Golini e52924c983 Added auto close brackets support to TextDocument and ecode.
Allow to change fonts in ecode.
2020-08-24 00:12:11 -03:00
Martín Lucas Golini 93bc53f379 Added global project search support to ecode. 2020-08-04 01:10:38 -03:00
Martín Lucas Golini ad4e4b5367 Minor improvements to UITreeView and related views.
Also improved UISplitter.
Improved side panel in ecode.
2020-07-20 00:34:40 -03:00
Martín Lucas Golini af6cce87cb TextDocument::remove optimization.
UILinearLayout fixed WrapContent with padding.
UITextEdit fixed font color.
Code Editor:
Change pixel density from the UI.
Display current line-collumn and document line count.
2020-07-03 05:47:31 -03:00
Martín Lucas Golini 94b225b33d Minor fixes and changes for the Code Editor. 2020-07-02 20:22:23 -03:00
Martín Lucas Golini 916e7b42ce Added "Enable Color Picker" and "Enable Color Preview" (also implemented it on UICodeEditor) to the Code Editor. 2020-07-01 23:42:57 -03:00
Martín Lucas Golini eefbb37f4d Added Input::waitEvent().
Minor fixes.
2020-06-28 20:16:01 -03:00
Martín Lucas Golini c5b0f0d845 Code Editor now saves the configuration and allows to configure most relevant stuff from the menus. 2020-06-24 22:37:46 -03:00
Martín Lucas Golini 39c6c65cba Redesigned the shortcut API to use the new keybinding class. 2020-06-23 23:45:27 -03:00
Martín Lucas Golini 78e28ccd83 UICodeEditor now acts as a client. A TextDocument can be consumed by any number of clients.
This enables the possibility of editing the same file in several splits and tabs at the same time in the code editor.
2020-06-22 02:29:05 -03:00
Martín Lucas Golini a9a866e5df Minor changes to the code editor and text document:
Add command to comment selected lines.
Option to trim trailing white spaces.
Option to ensure new line at end of file option.
Option to allow to select line endings type.
2020-06-21 22:43:21 -03:00
Martín Lucas Golini 924de8b08f TextDocument: Added auto indent type and width detection.
Fixed a bug in UIListBoxIitem.
Minor refactor in LuaPatternMatcher.
2020-06-21 17:18:41 -03:00
Martín Lucas Golini 088161e718 Fixed non Windows builds. 2020-06-21 00:55:05 -03:00
Martín Lucas Golini 7c22a09567 Improved white space rendering in UICodeEditor. 2020-06-20 05:02:07 -03:00
Martín Lucas Golini 2a500e56b9 Implemented UIIconTeme and UIIconThemeManager, now the icon searches are using these new classes. 2020-06-19 04:58:00 -03:00
Martín Lucas Golini d50861625e Added Graphics::GlyphDrawable.
Some minor refactor in Graphics::Texture.
2020-06-18 19:56:54 -03:00
Martín Lucas Golini 6885e34572 Added support to move Tabs from one UITabWidget to another using the onDrop API. 2020-06-18 05:33:21 -03:00
Martín Lucas Golini d904cea482 Implemented UINode::onDrop API.
Replaced/renamed all references to nodes and widgets that referred to them as "control".
2020-06-18 04:07:04 -03:00
Martín Lucas Golini 7de3420a9f Minor change in the syntax tokenizer to support "^" from the patterns.
Added diff file support.
Added UIMenuRadioButton.
Added support to shortcut/keybinding text display in UIMenuItem.
Improved UIMenuBar and UITouchDraggableWidget.
2020-06-18 02:56:27 -03:00
Martín Lucas Golini abc47067a4 Minor code editor fixes.
Improved touch dragging.
Minor API change in UIMenu::add*.
Updated the README.md.
Added TODO.md (to keep track on the things I want to improve/implement).
2020-06-17 03:49:12 -03:00