188 Commits
Author SHA1 Message Date
Martín Lucas Golini ccb03a3b8e Add inherited RTL direction and logical UI layout support
- Cache effective direction and skip unchanged subtree propagation.
- Add logical alignment, box edges, and relative positioning.
- Mirror layouts and controls while preserving logical node order.
- Apply inherited base direction to UI text and editing.
- Keep logical-edge storage lazy and compact.
- Add regression tests, an isolated WebView demo, and RTL documentation.
- Document RichText bidi limitations and plan paragraph-level support.
2026-10-11 12:29:16 -03:00
Martín Lucas Golini d49fe3fdc8 Add date and time pickers with calendar popups and HTML mappings
- Add CalendarDate, TimeOfDay, LocalDateTime and DateRange with Gregorian
  arithmetic, locale-aware formatting/parsing, ISO serialization and Unix
  timestamp conversions with explicit UTC offsets.
- Add UIDateTimeEdit, UIDatePicker, UITimePicker, UIDateTimePicker and
  standalone UICalendar, with XML/CSS registration and data binding.
- Support segmented keyboard editing, numeric entry, ISO paste, configurable
  steps, bounds, empty values and independent seconds/milliseconds display.
  Default time display to hours and minutes while preserving stored precision.
- Add day/month/year calendar navigation and a combined date-time popup with
  time steppers, live configuration updates and scoped event connections.
- Add Breeze and fallback theme styles with CSS-defined SVG icons, dp sizing,
  font-aware calendar dimensions and muted read-only/disabled controls.
- Map HTML date, time and datetime-local inputs to native controls with strict
  value sanitization, min/max/step/required/readonly/disabled handling,
  constraint validation and normalized form serialization.
- Provide private light HTML control defaults and intrinsic temporal sizing;
  prevent author CSS from styling anonymous implementation parts.
- Share popup placement and visibility helpers across pickers, dropdowns and
  trigger/cursor menus while retaining cascading-menu placement rules.
- Fix fractional grid wrapping and input cursor bubbling over child buttons;
  notify and refresh styles when editing permission changes.
- Reduce CSS registration allocations with string_view parameters and
  heterogeneous name lookup; inline frequently used node and CSS getters.
- Align CodeEditor default font sizing with text widgets without overriding
  application preferences.
- Add HTML form margin defaults and update the affected rendering baseline.
- Upgrade Windows ecode nightly builds to Ubuntu 24.04 and newer MinGW.
- Add picker documentation, an example and regression coverage for date math,
  locales, editing, popup placement/lifetime, HTML controls and pixel density
2026-10-06 01:13:44 -03:00
Martín Lucas Golini 98e9213f4d Add local Markdown navigation and persistent ecode previews and fix terminal selection bounds and vertical auto-scroll
- Follow local Markdown links relative to each document, including
  relative file:// paths, with configurable handling and async loading.
- Add validated subtree navigation interceptors and custom link flows.
- Introduce UIScrollableMarkdownView with XML support and scroll reset
  after successful navigation.
- Add opt-in Back/Forward history, localized context menu actions, and
  mod+[ / mod+] shortcuts; enable history in ecode previews.
- Restore preview tabs between sessions and preserve live editor binding
  and unsaved source content when navigating back.
- Refresh the README around eepp's GUI framework and document the new APIs.
- Remove the fixed Markdown code font size and add regression coverage
- Clamp selection coordinates independently so horizontal dragging preserves
  the selected row. Use the mouse event's Y coordinate against the terminal's
  vertical bounds, including padding, and retain unclamped coordinates during
  periodic updates outside the window.
2026-10-05 00:12:07 -03:00
Martín Lucas Golini 5db8d78725 - SocketSelector::isReady() (src/eepp/network/socketselector.cpp:111) no longer treats a Windows socket handle as an FD_SETSIZE index. That check prevented the inspector server from responding.
- Token generation (src/eepp/ui/tools/uiinspectorserver.cpp:67) now uses `BCryptGenRandom` on Windows, including for screenshot filenames.
- Split basic HTML defaults from document and form styles
- Load only structural defaults for Markdown views, leaving document colors and form-control styles to full HTML documents. Add Breeze styling for Markdown horizontal rules and HTML textareas.
2026-09-28 11:45:35 -03:00
Martín Lucas Golini 1ae2b7180b Add initial eproc system monitor
- Add the eproc process-monitoring application and persistent window/table state
  - Implement Linux process, network, GPU, icon, and GUI-window collection
  - Add optional process columns, styling, i18n-ready strings, and command copying
  - Retain exited processes for one update and color them as ended
  - Extend table sizing and header behavior for persisted column layouts
  - Organize Linux-specific sources under platform/linux
  - Keep unsupported platforms buildable with a startup WIP warning
2026-09-20 02:36:54 -03:00
Martín Lucas Golini 7dd21fa77c Improve tag creation and add UITextEdit hint support
Add native hint text support to UITextEdit, matching UITextInput behavior and exposing configurable hint text, color, font, size, style, shadow, outline, and HintDisplay modes. Render hints only for empty
documents and preserve the correct drawing order beneath the caret.

Expose the corresponding hint CSS properties through UITextEdit and apply the theme hint color to TextEdit and TextArea widgets.

Add an “Add Tag & Push” action alongside local-only tag creation. Push only the newly created tag using an explicit refspec and the current branch’s tracked remote, falling back to origin.
2026-08-29 20:28:27 -03:00
Martín Lucas Golini 27a57960f4 SubPixel hinting support. 2026-07-25 18:59:20 -03:00
Martín Lucas Golini b940407102 ecode: The custom fallback font reused the "fallback-font" resource key, replacing the built-in CJK fallback in FontService.
Fix:

  - User fallback now uses "user-fallback-font".
  - Built-in CJK and custom fallback fonts remain registered together.
  - Added and passed a regression test verifying both fallback resources remain in the chain.

Fixes in premake5.lua:

  - Removed obsolete PRECISE_F32=1; Wasm already provides precise float behavior.
  - Moved ENVIRONMENT=worker,web to final application link options.

Fixed MarkdownView not getting the correct CSS style from the base theme.
2026-07-25 01:36:00 -03:00
Martín Lucas Golini d04f4502db Fix minor bug in UIFileDialog text input row selection. 2026-06-15 01:32:28 -03:00
Martín Lucas Golini 5d0e31e52e Allow to inspect widget style from widget inspector. 2026-06-04 02:00:39 -03:00
Martín Lucas Golini aa9efcf13b Load CSS default HTML element styles from a CSS file with no specificity. This simplyfies how to setup the HTML defaults. Also set new defaults matching closer HTML spec. 2026-05-24 13:15:31 -03:00
Martín Lucas Golini 97fc336955 Fix: When build is triggered with unsaved files don't display the file save dialog for files that are just in text buffer.
Fix: Ctrl+W does not close the tab in Build Settings: Added Event::OnFocusWithin so the tab widget registers that event to setCurrenWidget in UICodeEditorSplitter.
2026-05-18 01:08:14 -03:00
Martín Lucas Golini 3dadd58ce1 Various fixes for HTML compat layer. 2026-05-16 03:26:55 -03:00
Martín Lucas Golini eaa82411c3 Improve @font-face font loading.
Added new flag UI_CREATING_NODE that will be used for performance optimizations.
2026-05-12 01:51:35 -03:00
Martín Lucas Golini 4fa495f0e1 Fix CSS parsing issues with media queries and imports.
Added sup and sub html elements.
2026-05-11 19:00:58 -03:00
Martín Lucas Golini bd9e70fb83 Fixes in how we process the CSS selector specificity.
Fixes in selector rule parser.
Stub implementation for attributes filter in CSS.
Fixes in `background-position` and `background` shorthand parsers.
Added a few HTML elements tags.
Added body default left and right margin.
2026-05-11 14:43:24 -03:00
Martín Lucas Golini d64638d989 Out of flow positioning fixes. 2026-05-01 11:30:22 -03:00
Martín Lucas Golini 936938b71f Added an option to set dynamic theming in the UICodeEditor. 2026-05-01 01:07:06 -03:00
Martín Lucas Golini 12b1ff0d62 Create the code element with the correct tag. 2026-04-30 20:59:13 -03:00
Martín Lucas Golini 6691d9c174 Improvements for ul and ol.
Added a few tags: dl, dt, dd.
Load style tags inside UIRichText blocks.
Added `display: list-item`.
2026-04-30 12:58:05 -03:00
Martín Lucas Golini f6e284c6f5 Move Default Block-Level Margins from Stylesheet to Widget Construction. This is needed in order to have working rules line: * { margin: 0; } with low specificity. 2026-04-28 00:11:18 -03:00
Martín Lucas Golini 82a93dada4 Added UIHTMLListItem to handle list items properly. 2026-04-27 01:38:37 -03:00
Martín Lucas Golini 8a9bc2cd47 Some HTML rendering fixes. Most important is the media query is correctly processed when combining style sheets. 2026-04-25 20:47:51 -03:00
Martín Lucas Golini 5e6c05d0c5 Fixes in Color::isColorString, added some functions to String, refactored a few things in LuaPattern. Fixed a crash while rendering text with only spaces. Improved FunctionString performance. 2026-04-07 00:05:51 -03:00
Martín Lucas Golini 061cb53dbf Fix pt, em, rem, pc, in, cm, mm to follow HTML spec.
Fix hexa color validation in Color::isColorString.
2026-04-05 03:21:57 -03:00
Martín Lucas Golini c3135e0b84 Deprecate TextInputPassword and its aliases. 2026-04-04 22:03:03 -03:00
Martín Lucas Golini 56c8bdcc5b Treat width/height px units as dp in HTML environments for better scaling. 2026-04-04 00:53:07 -03:00
Martín Lucas Golini dd6b6a11bf Added basic HTML inputs support.
Fixes in StyleSheet::removeAllWithMarker and added StyleSheet::removeAllWithoutMarker.
2026-04-02 01:17:11 -03:00
Martín Lucas Golini 0f8bacf6dd Fix br element tag.
Fix gumbo dependency in ecode.
Fix crash in StyleSheet::getStyleSheetStyleByAtRule.
Plus some minor nits.
2026-03-29 20:18:19 -03:00
Martín Lucas Golini 8b111779a0 Some extra WIP for the HTML support, fixed layout calculation on HTML tables and rich text elements. Fixes in the demo, probably test won't pass yet (i cannot repro the failure!). 2026-03-28 23:14:28 -03:00
Martín Lucas Golini a14b8f4de0 Minor fix in UIHTMLTable layouting.
Add *very* basic HTML test. And *very* basic HTML demo. This is more than basic, it's just that I need something to quickly test stuff.
2026-03-28 02:45:24 -03:00
Martín Lucas Golini 43a1dca16c Layouting improvements for UIImage and HTML elements.
Default StyleSheetUnit is now Dp when it's not specified (this is not used very often but in HTML mode we need to respect the DPI).
Fix MarkdownView fonts color when on Light theme.
2026-03-27 00:01:09 -03:00
Martín Lucas Golini 571ed644f5 Integration of the diff/patch viewing and file comparison in ecode (SpartanJ/ecode#130). 2026-03-25 23:44:57 -03:00
Martín Lucas Golini d0093a7801 Added multi-file diff / patch visualization support. 2026-03-25 00:54:48 -03:00
Martín Lucas Golini abbd2625ad Ups. Improved visuals in UIDiffView and actually fixed the tests. 2026-03-24 19:30:57 -03:00
Martín Lucas Golini 05d6d3e2a3 Redesigned LLM model selection in AI Assistant chat UI (now it's possible to search by filtering its name).
Redesigned UIDropDownList to inherit from UIDropDown which is a base class to handle different types of drop-downs. Added UIDropDownModelList which is the same as UIDropDownList but uses a UIListView by default so it's a model/view based DropDown.
Fix crash when changing states of the buttons in the build panel.
Increased the default animations speed.
2026-03-21 15:02:50 -03:00
Martín Lucas Golini a83812272c Fix accidental spaces inserted in chat ui. 2026-03-09 19:14:53 -03:00
Martín Lucas Golini 6fd0950eba Minor fix in RichText. 2026-03-09 00:31:38 -03:00
Martín Lucas Golini e8f4c9c8f7 More improvements in Markdown and basic HTML support (WIP!). 2026-03-08 16:00:36 -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 2d3a7b3032 Add blockquote support.
Fix a border rendering bug.
Fix background-color in UIRichText.
2026-03-07 03:33:10 -03:00
Martín Lucas Golini 1a20708d78 Fix Windows build. 2026-03-04 10:26:48 -03:00
Martín Lucas Golini 0c1bbb6959 Improved RichText support, added more support for basic HTML elements. 2026-03-04 01:04:34 -03:00
Martín Lucas Golini ccf5a49f88 Minor fix in AI chat file links.
Minor improvements in breeze CSS rules and color scheme translator.
2026-02-23 01:05:33 -03:00
Martín Lucas Golini a9901ef23b Allow to configure window shadow style with: window-shadow-color, window-shadow-offset, window-shadow-size. 2026-02-16 13:32:14 -03:00
Martín Lucas Golini 7977cd99dd Minor changes in DropDownList style.
Added StringMapModel and an example.
2026-02-09 13:37:18 -03:00
Martín Lucas Golini bbb8fce43f Instead of using *::cell::text and tableview::cell::icon in breeze and styles we will just use *::tableview::cell. And leave the inner elements of PushButton unaltered (since the father already can alter them).
Did some fixes in `Text::findCharacterPos` and `Text::findCharacterFromPos`, also tentatively added support for soft-wrap in those function (I haven't tested much yet).
2026-02-01 21:46:42 -03:00
Martín Lucas Golini 5d56e4da34 Added String::formatBuffer for char32_t strings.
Minor fixes in breeze theme.
2026-01-22 01:41:25 -03:00
Martín Lucas Golini f180e58e56 Added Settings -> Window -> UI Theme -> Syntax Color Scheme to use the editor color scheme globally for the UI Theme colors, having a single color palette for the whole UI and making much easier to style the UI, this solves SpartanJ/ecode#661, since now we support one UI theme for each existing syntax color scheme. Still a WIP, I'll continue improving it during the development of 0.7.5, but it's ready to use. 2026-01-18 01:38:27 -03:00
Martín Lucas Golini cf6c14fbda Do not copy the whole SyntaxDefinition into TextDocument but instead keep the shared pointer to the definition.
Did some minor SyntaxDefinition memory access safety improvements.
In breeze color scheme definition renamed `--win-icon` to `--icon-line` and removed `--scroll-button` since it was not being used.
2026-01-17 00:19:51 -03:00