mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-27 19:47:12 -06:00
Native menu bar (apps/effectcraft, muda, macOS only): the engine's After Effects menu tree mirrored into NSMenu through a pure, serializable spec (ui-egui native_menu: submenus, separators, live labels, check marks, enabled state, Cmd/Ctrl/function-key shortcuts as accelerators, Open Recent). Hide / Hide Others / Show All are macOS' predefined items (app.hideOthers/app.showAll are real commands now, via NSApplication); Services added; About, Settings and Quit dispatch our commands. State is pushed only when the session revision, selection, history, settings or journal change; structural changes rebuild. Activations dispatch the same command ids as the in-window bar; Edit Cut/Copy/Paste/Select All/Undo/Redo act on a focused text field. Settings > Appearance > Use In-Window Menu Bar on macOS switches back. Timeline: column visibility from the column header's context menu (A/V Features, Keys, Label, #, Comment, Switches, Modes, Parent & Link, In, Out, Duration, Stretch; Source/Layer Name toggle), Comment editing (layer.setComment), draggable In/Out/Duration cells, Stretch opens Time Stretch; property search filters layers and reveals matching properties with their groups; Shift+P/S/R/T/A/E/M/F/L/U add to the revealed properties; UU reveals all modified properties; Shift-drag in the ruler snaps the CTI to keys, in/out points, markers and the work area. Commands: timeline.column, timeline.sourceName, timeline.search, timeline.revealAdd.*. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
37 lines
1.5 KiB
TOML
37 lines
1.5 KiB
TOML
[package]
|
|
name = "effectcraft"
|
|
description = "EffectCraft desktop app"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
default-run = "effectcraft"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
effectcraft-engine = { workspace = true }
|
|
effectcraft-host = { workspace = true }
|
|
effectcraft-ui-egui = { workspace = true }
|
|
egui = { workspace = true }
|
|
eframe = { workspace = true, features = ["default_fonts", "wgpu", "accesskit", "wayland", "x11"] }
|
|
serde_json = { workspace = true }
|
|
rfd = { workspace = true }
|
|
cpal = { workspace = true }
|
|
log = { workspace = true }
|
|
|
|
[build-dependencies]
|
|
# Icon + VERSIONINFO for effectcraft.exe; build.rs only uses it when targeting Windows.
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
# Same winit as eframe: macOS event-loop options (no app activation when driven by an agent).
|
|
winit = { version = "0.30", default-features = false }
|
|
# Keep the control channel responsive when the window is covered (App Nap / occlusion throttling).
|
|
objc2-foundation = { version = "0.3", default-features = false, features = ["std", "NSProcessInfo", "NSString", "NSObject"] }
|
|
# The native menu bar (NSMenu). MIT OR Apache-2.0; macOS only, never in the web build.
|
|
muda = { version = "0.21", default-features = false }
|
|
objc2 = "0.6"
|
|
# NSApplication hide / hide others / show all, and the pasteboard for Edit ▸ Paste in text fields.
|
|
objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSResponder", "NSPasteboard"] }
|