Skip to content

refactor(examples): share pad logic via TPadController and IPadShell - #1

Merged
cmgeuze merged 1 commit into
mainfrom
refactor/shared-pad-controller
Jul 24, 2026
Merged

refactor(examples): share pad logic via TPadController and IPadShell#1
cmgeuze merged 1 commit into
mainfrom
refactor/shared-pad-controller

Conversation

@cmgeuze

@cmgeuze cmgeuze commented Jul 24, 2026

Copy link
Copy Markdown
Member

Extract the application logic duplicated between the VCL and FMX MarkdownPad demos into a framework-agnostic TPadController, driven through IPadEditorView and a new IPadShell seam.

Moved to Examples/Shared (once, framework-agnostic):

  • Document lifecycle (new/open/save/save-as/close, document switch, session restore/save)
  • Command palette (registry, recent files, fuzzy match, execute)
  • Editing loop (editor-change, tick, status/title, find, TOC-sync, external-reload, close-query)
  • HTML export/copy generation

The forms keep only control construction, rendering and the two interface implementations. View-mode and zen stay in the forms as framework view logic; the FTocFollowing reentrancy guard stays FMX-only (VCL's list fires no change on a programmatic ItemIndex).

Also splits the per-app constants into MarkdownPadVCL.Defines / MarkdownPadFMX.Defines and moves the shared RecentShortcut into MarkdownPad.Defines.

Both VCL and FMX build clean with zero hints/warnings.

Extract the application logic duplicated between the VCL and FMX MarkdownPad
demos into a framework-agnostic TPadController, driven through IPadEditorView
and a new IPadShell seam. Document lifecycle, command palette, the editing
loop (change/tick/status/title/find/TOC-sync/reload/close-query) and HTML
export/copy now live once in Examples/Shared; the forms keep only control
construction, rendering and the two interface implementations.

Split the per-app constants into MarkdownPadVCL.Defines / MarkdownPadFMX.Defines
and move the shared RecentShortcut into MarkdownPad.Defines. View-mode and zen
stay in the forms as framework view logic.
@cmgeuze
cmgeuze force-pushed the refactor/shared-pad-controller branch from ee98dd8 to c4374c0 Compare July 24, 2026 07:32
@cmgeuze
cmgeuze merged commit 84147f4 into main Jul 24, 2026
0 of 4 checks passed
@cmgeuze
cmgeuze deleted the refactor/shared-pad-controller branch July 24, 2026 07:50
cmgeuze added a commit that referenced this pull request Jul 30, 2026
refactor(examples): share pad logic via TPadController and IPadShell
cmgeuze added a commit that referenced this pull request Aug 31, 2026
refactor(examples): share pad logic via TPadController and IPadShell
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant