All projects

Native dialogs everywhere

NativeMessageBox

Ask a native question through one contract while preserving each platform’s strengths.

StatusActive
TierMaintained
DomainFrameworks
Repositorywieslawsoltes/NativeMessageBox

A managed and native ABI for advanced message dialogs across Windows, macOS, Linux, iOS, Android, and WebAssembly.

NativeMessageBox provides one managed contract and one native C ABI over six platform implementations. Advanced buttons, input, verification, secondary content, links, timeouts, thread rules, packaging, and fallback behavior remain explicit instead of being flattened to the lowest common denominator.

01

Six platform implementations

02

Custom buttons, input, and verification

03

Timeouts and secondary content

04

Managed .NET and native C APIs

Where it fits.

  • Cross-platform desktop and mobile applications
  • Native C/C++ and managed .NET hosts
  • Apps that need richer native prompts than OK/Cancel
Windows / macOS / Linux

Advanced dialogs

iOS / Android

Native mobile dialogs

WebAssembly

Async overlay

C / C++

Versioned ABI

Real output,
not a mockup.

NativeMessageBox GitHub repository preview
The project packages managed, native, mobile, WebAssembly, sample, and documentation layers around one dialog contract.

Clear layers.
Replaceable seams.

01

Contracts

Portable options and results describe buttons, content, input, policy, and outcomes.

02

Managed host

The .NET client resolves runtime assets, logging, threading, and errors.

03

Native ABI

A versioned header and marshaling boundary serve native and managed callers.

04

Platforms

Windows, macOS, GTK, iOS, Android, and Web implementations preserve native behavior.

6 platformsnative implementations
2 APIs.NET and native C
Structuredbuttons, input, timeout result
LiveGitHub metadata

One repository.
Multiple serious systems.

Explore the focused capabilities, their package boundaries, architecture, installation, and smallest useful example.

From package
to first frame.

Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.

01 · Install
Terminal
dotnet add package NativeMessageBox
02 · Use · csharp
QuickStart.cs
var result = await NativeMessageBoxClient.ShowAsync(
new MessageBoxOptions(
message: "Save changes?",
buttons: MessageBoxButtons.YesNoCancel,
title: "Document"));

Start focused.
Compose as needed.

The repository is the source of truth.

Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.

Lottie

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…