diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-04-04 19:22:04 +0300 |
|---|---|---|
| committer | Can Celik <ogulcancelik@gmail.com> | 2026-04-05 01:23:06 +0300 |
| commit | 41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch) | |
| tree | 3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/src/apprt.zig | |
| parent | 55c138263e190a1e79d4b997bfb9397306c0ec1f (diff) | |
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/src/apprt.zig')
| -rw-r--r-- | vendor/libghostty-vt/src/apprt.zig | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/apprt.zig b/vendor/libghostty-vt/src/apprt.zig new file mode 100644 index 00000000..c467f180 --- /dev/null +++ b/vendor/libghostty-vt/src/apprt.zig @@ -0,0 +1,59 @@ +//! "apprt" is the "application runtime" package. This abstracts the +//! application runtime and lifecycle management such as creating windows, +//! getting user input (mouse/keyboard), etc. +//! +//! This enables compile-time interfaces to be built to swap out the underlying +//! application runtime. For example: pure macOS Cocoa, GTK+, browser, etc. +//! +//! The goal is to have different implementations share as much of the core +//! logic as possible, and to only reach out to platform-specific implementation +//! code when absolutely necessary. +const build_config = @import("build_config.zig"); + +const structs = @import("apprt/structs.zig"); + +pub const action = @import("apprt/action.zig"); +pub const ipc = @import("apprt/ipc.zig"); +pub const gtk = @import("apprt/gtk.zig"); +pub const none = @import("apprt/none.zig"); +pub const browser = @import("apprt/browser.zig"); +pub const embedded = @import("apprt/embedded.zig"); +pub const surface = @import("apprt/surface.zig"); + +pub const Action = action.Action; +pub const Runtime = @import("apprt/runtime.zig").Runtime; +pub const Target = action.Target; + +pub const ContentScale = structs.ContentScale; +pub const Clipboard = structs.Clipboard; +pub const ClipboardContent = structs.ClipboardContent; +pub const ClipboardRequest = structs.ClipboardRequest; +pub const ClipboardRequestType = structs.ClipboardRequestType; +pub const ColorScheme = structs.ColorScheme; +pub const CursorPos = structs.CursorPos; +pub const IMEPos = structs.IMEPos; +pub const Selection = structs.Selection; +pub const SurfaceSize = structs.SurfaceSize; + +/// The implementation to use for the app runtime. This is comptime chosen +/// so that every build has exactly one application runtime implementation. +/// Note: it is very rare to use Runtime directly; most usage will use +/// Window or something. +pub const runtime = switch (build_config.artifact) { + .exe => switch (build_config.app_runtime) { + .none => none, + .gtk => gtk, + }, + .lib => embedded, + .wasm_module => browser, +}; + +pub const App = runtime.App; +pub const Surface = runtime.Surface; + +test { + _ = Runtime; + _ = runtime; + _ = action; + _ = structs; +} |
