This repository has no description
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879//! "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 std = @import("std");const builtin = @import("builtin");const build_config = @import("build_config.zig");
const structs = @import("apprt/structs.zig");
pub const action = @import("apprt/action.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 Target = action.Target;
pub const ContentScale = structs.ContentScale;pub const Clipboard = structs.Clipboard;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;
/// Runtime is the runtime to use for Ghostty. All runtimes do not provide/// equivalent feature sets.pub const Runtime = enum { /// Will not produce an executable at all when `zig build` is called. /// This is only useful if you're only interested in the lib only (macOS). none,
/// GTK-backed. Rich windowed application. GTK is dynamically linked. gtk,
pub fn default(target: std.Target) Runtime { // The Linux default is GTK because it is full featured. if (target.os.tag == .linux) return .gtk;
// Otherwise, we do NONE so we don't create an exe and we // create libghostty. return .none; }};
test { _ = Runtime; _ = runtime; _ = action; _ = structs;}