Commit Graph

115 Commits

Author SHA1 Message Date
sysadmin
637aa7a550 Shadcn-style command row: pill chips, chevron breadcrumbs, left-elide
- Add ROUNDBOX pill indicators behind editable SRC and ADDR spans
- Switch breadcrumb separator from > to › (U+203A)
- Collapse deep paths (>4 parts) with ellipsis
- Left-elide breadcrumb path to keep current selection visible
- Clear base-addr indicator before repainting (prevents smear)
- Wire pill + addr decorators into setCommandRowText refresh
2026-02-05 18:32:44 -07:00
sysadmin
82e1520ded CommandRow: * icon, SRC: label, remove separator, clean margins
- Replace diamond with * for pixel-perfect fold alignment
- Add SRC: label prefix to command row source field
- Remove vertical bar separator from command row
- Clear footer margin text (no more ---)
- Remove + prefix from offset margin (0x instead of +0x)
- Remove codicon font infrastructure (use editor font chars)
2026-02-05 17:25:51 -07:00
sysadmin
6b9adf03fe Struct headers: type+name format, auto-collapse, no footer when collapsed
- Add structTypeName field to Node for struct type names
- Struct headers now show: struct TYPENAME name {
- Auto-collapse structs/arrays by default
- Skip footer rendering when collapsed (cleaner view)
- Fix header span calculations for new format
- Disable brace matching (not needed for structured viewer)
- Change hover color to muted teal (distinct from keywords)
2026-02-05 08:56:50 -07:00
sysadmin
a0d6b769b6 Fix 7 data bugs: hex endian, signed hex, array span, UTF-8 positions, array undo, offset sign 2026-02-05 07:15:51 -07:00
IChooChoose
4d35db224e Condensed array display + per-scope column widths + MIT license
- Array element structs render without { } braces (condensed display)
- [N] separators show element indices within arrays
- Per-scope column width calculation (nested elements use tighter spacing)
- Array headers show struct[N] for struct arrays
- [N] separators are not interactive (no hover/click highlight)
- Dynamic type column width (min 8, max 14)
- PE32+ sample data with full headers, DataDirectory[16], SectionHeaders[4]
- Added MIT license

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 06:26:00 -07:00
sysadmin
04252a3c96 Fix type picker popup cursor, sanitize string display
- Use isListActive() to detect popup and force arrow cursor
- Remove broken widget-search hack from showTypeListFiltered()
- Escape \n \r \t and control chars in char[]/wchar_t[] display
2026-02-04 09:28:12 -07:00
sysadmin
5d24a5594f Type picker: skip I-beam cursor, set arrow on popup 2026-02-04 09:10:48 -07:00
sysadmin
b7b0cbf2d2 Dynamic name column width + click-in-padding keeps edit active
- Compute effective name column width from longest field name (8-22 chars)
- Store layout in ComposeResult, cache in editor for span calculations
- Parameterize span functions to use runtime nameW instead of fixed constant
- Click within column padding during edit moves cursor to end instead of committing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 09:03:18 -07:00
sysadmin
490486ca7c Type picker refactor: use SCI_USERLISTSHOW, fix coordinate handling
- Switch type picker from SCI_AUTOCSHOW to SCI_USERLISTSHOW for proper
  signal handling (userListActivated now fires correctly)
- Fix coordinate system mixing by using posFromCol() consistently
- Skip 0x prefix in value/base address edit selection
- Dynamic hint positioning: 2 spaces after value with // prefix
- Clearer validation errors ("too large! max=0x..." instead of "max")
- Green colored hint text using IND_BASE_ADDR indicator

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 07:48:59 -07:00
sysadmin
06c3251f74 Inline edit UX improvements: selection clamping, auto-select, validation fixes
- Constrain selection/cursor to edit span boundaries during inline edit
- Auto-select entire text when entering edit mode (Name, Value, Type)
- Double-click during edit selects entire editable text
- Fix vector component validation (subLine >= 0 for x component)
- Accept EU decimal separator (comma) for float parsing
- Darker selection highlight (35,35,35) vs hover (43,43,43)
- Remove blue text indicator, use hidden style
- Fix validation error message display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:33:40 -07:00
sysadmin
a7e67b12fe Dynamic comment field for value editing with validation feedback
- Comment shows "Enter=Save Esc=Cancel" when valid, "! value" when invalid
- Only updates on validation state change to avoid lag
- Uses deferred timer for Scintilla document sync
- Added tests for comment echo and validation error display
2026-02-03 11:35:40 -07:00
sysadmin
2c00902020 Fix mouse event sync: hover on click, drag threshold, indicator/selection alignment 2026-02-03 08:34:31 -07:00
sysadmin
af183f27f0 KindFlags refactor, indicator helpers, auto-padding, sizeof format fix
- Add KindFlags bitmask enum (KF_HexPreview, KF_Container, KF_String, KF_Vector)
- Add helper functions: isHexPreview(), flagsFor(), allTypeNamesForUI()
- Add editor helpers: clearIndicatorLine(), fillIndicatorCols(), resolvedSpanFor()
- Use SCI_FINDCOLUMN for UTF-8 safe column-to-position conversion
- Auto-emit hex padding nodes when changing type to smaller size
- Fix struct footer format: sizeof(Name)=0x... (no spaces)
- Add tests for sizeof recalculation after node deletion
- Add debug output to investigate sizeof refresh issue
- Replace icons.qrc with resources.qrc, add embedded fonts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 05:55:29 -07:00
sysadmin
abe5e3ebd9 selection and hover use full-row bg markers instead of indicators
- replace IND_SELECTED/IND_HOVER indicators with M_HOVER(6) M_SELECTED(7) bg markers
- disable caret line highlight and native selection rendering
- re-enable sel rendering only during inline edit
- add drag-select support via nodeClicked shift signals
- use lineRangeNoEol helper to exclude EOL from indicator ranges
- add drag tracking state to editor
2026-02-01 17:04:40 -07:00
sysadmin
0be67c8396 Initial commit: ReclassX structured binary editor 2026-02-01 11:37:32 -07:00