mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-10-18 11:33:23 +03:00
Async core (EE namespace, documented in docs/articles/async_core.md): - Add Result<T, E>, Task<T>/TaskSource<T> with continuations and abandonment, Executor, CancellationToken and SmallUniqueFunction - Make ThreadPool an Executor with submit() returning a Task; work items are move-only - Add Scene::MainThreadExecutor to resume continuations on the UI thread - Move URI to EE core (eepp/core/uri.hpp) with filesystem helpers (fromFSPath, getFSPath, getParent); EE::Network::URI remains an alias - Add System::SHA1 (streaming, modeled on MD5) - Rename the pack path index to System::PackFileIndex; VirtualFileSystem is kept as a deprecated alias eepp-vfs module (src/modules/vfs, documented in docs/articles/vfs.md): - URI-addressed VirtualFileSystem with pluggable providers: file://, mem://, res:// (packs) and sftp:// - Async file and directory handles, metadata, space info, capabilities and IOStream adapters - Copy/move transfers with progress, cancellation and conflict options - Change watching through efsw locally, efsw-agent over SSH for sftp://, and a polling fallback - VFSDirectoryModel for table views: sorting, name filtering (plain, glob, regex), type and item-count columns, per-column CSS classes and lifetime-safe executor delivery SFTP: - SSH sessions over libssh2 with ssh_config parsing (Host/Match, ProxyJump, ProxyCommand), known_hosts verification, ssh-agent, key and keyboard-interactive authentication, and connection pooling - Built by default; opt out with --without-vfs-sftp - Vendor libssh2 1.11.1 with the mbedTLS backend, and add Ed25519 host and user keys to it through Monocypher 4.0.2 (mbedTLS has no Ed25519) eefm (src/tools/eefm), a Dolphin-like file manager on eepp-vfs: - Split panes, each with its own tabs, location bar, history and filter bar - Places panel with Places, Remote (saved locations and network mounts) and Devices (with usage), editable, hideable and reorderable by drag - Details view with drag and drop, clipboard interoperable with other file managers, rename, new folder/file, trash (freedesktop, macOS, Windows) and properties - Open and Open With from shared-mime-info and desktop entries - Persisted window, panes, tabs, columns, sort and places UI and window fixes: - Keep table column max widths across model updates and give the main column the remaining width - Count left margins when laying out push button icon and text - Add Clipboard::setMimeData, getDataString and getTextMimeTypes - Report Zip::close/addFile failures and free archives correctly Tests and tooling: - Unit tests for the async core, VFS providers, transfers, watching, the directory model, ssh_config, SFTP (local sshd), the efsw agent protocol, SHA1 and URI - Add a VFS benchmark - Update efsw with efsw-agent and its wire protocol
2.8 KiB
2.8 KiB
eepp articles
Use this page to find the guide for the task you are doing. The articles explain eepp's supported behavior; class headers and current source code remain the reference for API details.
| Task | Start here | Follow up with |
|---|---|---|
| Build a first UI with XML and CSS | UI introduction | Application UI authoring |
| Create or change an application screen | Application UI authoring | Native layout reference, CSS for application UI |
| Look up a CSS property, selector, or value | CSS specification | CSS for application UI when styling native widgets |
| Render HTML or Markdown content | HTML compatibility layer | CSS specification for supported properties and values |
| Preview and edit native XML/CSS layouts | UI editor | Application UI authoring, Runtime UI inspector |
Support right-to-left languages or logical start/end layouts |
UI direction and RTL | CSS specification for direction and flow-relative properties |
| Inspect or automate a running UI | Runtime UI inspector | Application UI authoring for a layout debugging workflow |
| Bind application data or commands to widgets | UI data binding | Application UI authoring for screen structure |
| Make native widgets accessible | UI accessibility | Application UI authoring for screen structure |
| Work on the accessibility implementation | UI accessibility architecture | UI accessibility for the application-facing behavior |
| Add an interactive chart | UI charts | Application UI authoring for placement and sizing |
| Run async work: tasks, results, executors, cancellation | Async core | include/eepp/core/task.hpp and the other headers it lists |
| Read or write files through URIs (local, packs, SFTP), watch directories | Virtual file system | Async core, the src/modules/vfs/include/eepp/vfs/ headers |
Work on eterm Kitty support |
Keyboard protocol, graphics protocol | The corresponding src/modules/eterm/ implementation and tests |
Native application widgets and HTML documents have different layout behavior. Start with
application UI authoring for toolbars, dialogs, forms, and editor windows;
start with HTML compatibility for UIWebView and UIMarkdownView.