feat(runtime): native platform backends and UI vessels onto main
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
// main.el — Entry point for native-hello.
|
||||
//
|
||||
// Boot sequence:
|
||||
// 1. Initialize the native widget system.
|
||||
// 2. Read the manifest.el app{} block for window config.
|
||||
// 3. Create the window.
|
||||
// 4. Build the widget tree (App.el: app_build).
|
||||
// 5. Show the window.
|
||||
// 6. Start the run loop (never returns).
|
||||
|
||||
import "App.el"
|
||||
|
||||
// ── Boot ──────────────────────────────────────────────────────────────────────
|
||||
|
||||
native_init()
|
||||
|
||||
// Determine the manifest path relative to where we are invoked.
|
||||
// When running from the example directory: manifest.el is at ./manifest.el.
|
||||
// When invoked from elsewhere: pass EL_MANIFEST env var.
|
||||
let manifest_env: String = env("EL_MANIFEST")
|
||||
let manifest_path: String = if str_len(manifest_env) > 0 {
|
||||
manifest_env
|
||||
} else {
|
||||
"manifest.el"
|
||||
}
|
||||
|
||||
// Create window from manifest.
|
||||
let win: Int = window_from_manifest(manifest_path)
|
||||
let g_window = win
|
||||
|
||||
if win < 0 {
|
||||
println("Error: failed to create window. Is EL_TARGET_MACOS defined?")
|
||||
exit_program(1)
|
||||
}
|
||||
|
||||
// Build the widget tree.
|
||||
app_build(win)
|
||||
|
||||
// Show the window.
|
||||
window_show(win)
|
||||
|
||||
// Hand control to AppKit. Never returns.
|
||||
native_run_loop()
|
||||
Reference in New Issue
Block a user