From 6994da58743a9d07af863b826db3d99ab555cbe1 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Tue, 19 May 2026 22:01:38 -0400
Subject: [PATCH 01/48] README Graphic
Added Chevron's social preview image in README
---
README.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/README.md b/README.md
index 7c45dd4..5a59be1 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,10 @@
+
+

+
+
( Nothing here yet, come back soon! )
From c6b241a0bee839b1b33690819a8c519404b78973 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Tue, 19 May 2026 22:03:07 -0400
Subject: [PATCH 02/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 5a59be1..b980373 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
-

+
From 45dccf8b97c8d141cabb11fb54bac11615ddb54e Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Tue, 19 May 2026 23:38:53 -0400
Subject: [PATCH 03/48] Update README.md
---
README.md | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/README.md b/README.md
index b980373..a295cd6 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,18 @@
+
+
What is this?
+
+ Every C++ GUI application has to settle the same foundational details before it can really begin: how memory is structured, how concurrent threads of execution are managed,
+ how windows are managed, how UI views change at runtime, etc. None of this is the application itself, yet it is crucial to the applications functionality.
+
+
+ Chevron is a C++20 GUI application infrastructure library that owns the mechanics of a modern GUI application (process lifetime, window scaffolding, dynamic view handling,
+ memory/thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
+
+
+
( Nothing here yet, come back soon! )
From d8e8d3594f6291ac8a50b560ba2b392bf83dc43d Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Tue, 19 May 2026 23:40:38 -0400
Subject: [PATCH 04/48] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index a295cd6..02a5fd9 100644
--- a/README.md
+++ b/README.md
@@ -32,8 +32,8 @@
Chevron is a C++20 GUI application infrastructure library that owns the mechanics of a modern GUI application (process lifetime, window scaffolding, dynamic view handling,
memory/thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
-
+
-
( Nothing here yet, come back soon! )
+ ( ...This README is still in progress... )
From a9563934e3d285121950deec26a8dc870156b3c8 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Tue, 19 May 2026 23:46:31 -0400
Subject: [PATCH 05/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 02a5fd9..ec38f98 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
-
What is this?
+
What is this?
Every C++ GUI application has to settle the same foundational details before it can really begin: how memory is structured, how concurrent threads of execution are managed,
how windows are managed, how UI views change at runtime, etc. None of this is the application itself, yet it is crucial to the applications functionality.
From c27836e34a67291ff9c512c04ea113d5e517d51e Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Tue, 19 May 2026 23:49:00 -0400
Subject: [PATCH 06/48] Update README.md
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index ec38f98..526bf02 100644
--- a/README.md
+++ b/README.md
@@ -29,8 +29,10 @@
how windows are managed, how UI views change at runtime, etc. None of this is the application itself, yet it is crucial to the applications functionality.
+
Chevron is a C++20 GUI application infrastructure library that owns the mechanics of a modern GUI application (process lifetime, window scaffolding, dynamic view handling,
memory/thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
+
From 316696603b60cf8d267323385c195dc245a7c5f4 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 00:10:22 -0400
Subject: [PATCH 07/48] Update README.md
---
README.md | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/README.md b/README.md
index 526bf02..d23f193 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,17 @@
+> [!WARNING]
+>
+> Chevron is in active early development. The API is unstable and breaking changes should be expected. This library is not yet suitable for production code.
+>
+
+
+
+
+
+
+
( ...This README is still in progress... )
From 681460bc91948bc2ee8ca1e3890145f249eede9f Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 01:00:13 -0400
Subject: [PATCH 08/48] Update README.md
---
README.md | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index d23f193..09c29e5 100644
--- a/README.md
+++ b/README.md
@@ -38,14 +38,32 @@
> [!WARNING]
>
-> Chevron is in active early development. The API is unstable and breaking changes should be expected. This library is not yet suitable for production code.
+> Chevron is in active early development. The API is unstable and breaking changes should be expected. This library is not yet suitable for production code!
>
-
+
+
What Chevron is NOT
+
+ Chevron is GUI application infrastructure, NOT a GUI framework abstraction
+
+
+ It does not unify GUI frameworks behind a portable interface and it does not introduce an explicit widget layer of its own. A Chevron user picks exactly one GUI framework, includes
+ it directly, and writes GUI code as they typically would. What changes is the structural environment that code lives inside (the parts of the application that aren't about the
+ GUI but are around it).
+
+
[ ...graph visually conveying Chevron's relationship to a GUI framework... ]
+
-
+
+
+
+
Planned GUI Framework Support
+
+
+
+
( ...This README is still in progress... )
From 11065995a9183a42a2dc42f282b29774204e57ec Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 01:06:36 -0400
Subject: [PATCH 09/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 09c29e5..2796fe6 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,7 @@
-
Planned GUI Framework Support
+
Planned GUI Framework Support
From e8ce7e14adb58af0ee15c64a03011343f5c6a189 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 01:10:05 -0400
Subject: [PATCH 10/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 2796fe6..af4f556 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@
What is this?
Every C++ GUI application has to settle the same foundational details before it can really begin: how memory is structured, how concurrent threads of execution are managed,
- how windows are managed, how UI views change at runtime, etc. None of this is the application itself, yet it is crucial to the applications functionality.
+ how windows are handled, how UI views change at runtime, etc. None of this is the application itself, yet it is crucial to the applications functionality.
From 488edba52b66753001545d4f9494b645703cf12e Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 01:16:50 -0400
Subject: [PATCH 11/48] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index af4f556..4493da8 100644
--- a/README.md
+++ b/README.md
@@ -49,9 +49,9 @@
Chevron is GUI application infrastructure, NOT a GUI framework abstraction
- It does not unify GUI frameworks behind a portable interface and it does not introduce an explicit widget layer of its own. A Chevron user picks exactly one GUI framework, includes
- it directly, and writes GUI code as they typically would. What changes is the structural environment that code lives inside (the parts of the application that aren't about the
- GUI but are around it).
+ It does NOT unify GUI frameworks behind a portable interface and it does NOT introduce an explicit widget layer of its own. A Chevron user
+ picks exactly one GUI framework, includes it directly, and writes GUI code similar to how they typically would. What changes is the structural environment that code lives
+ inside (the parts of the application that aren't about the GUI but are around it).
[ ...graph visually conveying Chevron's relationship to a GUI framework... ]
From 7b94275ed7a8497419a879168c526deaa26edd80 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 01:33:15 -0400
Subject: [PATCH 12/48] Update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 4493da8..ccbfa7d 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,7 @@
memory/thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
+ [ ...graphic visually conveying components Chevron provides downstream applications... ]
> [!WARNING]
From 853a2c857860c4e6755a5158104054a9b69c729d Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 01:50:34 -0400
Subject: [PATCH 13/48] Update README.md
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index ccbfa7d..0182f4a 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,6 @@
picks exactly one GUI framework, includes it directly, and writes GUI code similar to how they typically would. What changes is the structural environment that code lives
inside (the parts of the application that aren't about the GUI but are around it).
- [ ...graph visually conveying Chevron's relationship to a GUI framework... ]
From ba9e74ba4b72749c694e38ef1183c40b139df143 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 02:09:51 -0400
Subject: [PATCH 14/48] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 0182f4a..85c7f5b 100644
--- a/README.md
+++ b/README.md
@@ -26,12 +26,12 @@
What is this?
Every C++ GUI application has to settle the same foundational details before it can really begin: how memory is structured, how concurrent threads of execution are managed,
- how windows are handled, how UI views change at runtime, etc. None of this is the application itself, yet it is crucial to the applications functionality.
+ how windows are handled, how UI views change at runtime, and more. None of this is the application itself, yet it is crucial to the applications functionality.
Chevron is a C++20 GUI application infrastructure library that owns the mechanics of a modern GUI application (process lifetime, window scaffolding, dynamic view handling,
- memory/thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
+ thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
[ ...graphic visually conveying components Chevron provides downstream applications... ]
From a177e17ff3e08fcd5b7e19459964f5c479c74d28 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 07:26:57 -0400
Subject: [PATCH 15/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 85c7f5b..6455475 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@
thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
- [ ...graphic visually conveying components Chevron provides downstream applications... ]
+
> [!WARNING]
From d09722c296b8e8e64efb06f64915b99b7705687b Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 07:38:35 -0400
Subject: [PATCH 16/48] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 6455475..b678cd5 100644
--- a/README.md
+++ b/README.md
@@ -33,8 +33,8 @@
Chevron is a C++20 GUI application infrastructure library that owns the mechanics of a modern GUI application (process lifetime, window scaffolding, dynamic view handling,
thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
-
-
+
+
> [!WARNING]
From 816d1ce546f963acaabe1f3f71fe1721c5575525 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 08:15:47 -0400
Subject: [PATCH 17/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index b678cd5..2565b2c 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@
thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
-
+
> [!WARNING]
From db39b6a02405cab3fdbd4bf6c5547ac14fda6ae5 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 16:54:23 -0400
Subject: [PATCH 18/48] Update README.md
---
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 2565b2c..56cc119 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
-

+
@@ -34,7 +34,8 @@
thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
-

+

+
( diagram showcasing components Chevron provides downstream applications )
> [!WARNING]
From 9a5f644c4440192902a825fd60ee9597ed514fec Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 21:23:14 -0400
Subject: [PATCH 19/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 56cc119..55effab 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@
thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
-
+
( diagram showcasing components Chevron provides downstream applications )
From 8954685d73e0e71f43b1b1d7c81553ada51e78ca Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 23:29:12 -0400
Subject: [PATCH 20/48] Update README.md
---
README.md | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 55effab..cd823cc 100644
--- a/README.md
+++ b/README.md
@@ -48,7 +48,10 @@
What Chevron is NOT
- Chevron is GUI application infrastructure, NOT a GUI framework abstraction
+ Chevron is GUI application infrastructure,
+
+
+ NOT a GUI framework abstraction
It does NOT unify GUI frameworks behind a portable interface and it does NOT introduce an explicit widget layer of its own. A Chevron user
@@ -59,6 +62,18 @@
+
+
Architecture Overview
+
+ Chevron is organized as three nested lifetime tiers, each owned and bounded by the one above it. AppProcess opens the process lifetime and lives for the full
+ duration of the application. Inside it, GUIEngine opens the GUI lifetime, governing framework initialization, the mainloop, and teardown. Inside that, each
+ live window is represented by a WindowEnvelope, created when a window is dispatched and destroyed when that window closes. Nothing in a tier may exist before
+ its enclosing tier has opened, and nothing may outlive its close. Every other piece of infrastructure in the library (memory, threading, windowing, dynamic views)
+ lives somewhere inside this nesting.
+
+

+
+
Planned GUI Framework Support
From 48094019d73b1b9878bb1daed611b1922bd3fac5 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 23:33:05 -0400
Subject: [PATCH 21/48] Update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index cd823cc..bb08c47 100644
--- a/README.md
+++ b/README.md
@@ -72,6 +72,7 @@
lives somewhere inside this nesting.

+
( diagram showcasing major system component lifetime progression )
From 29f233b96dd8d66f07a9c993c421f9ef873fedcf Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 20 May 2026 23:35:11 -0400
Subject: [PATCH 22/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index bb08c47..d3fe2db 100644
--- a/README.md
+++ b/README.md
@@ -72,7 +72,7 @@
lives somewhere inside this nesting.

-
( diagram showcasing major system component lifetime progression )
+
( diagram showcasing major system component lifetime tiers )
From 519fbd263b33087320a535395263acd7121059bb Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 00:09:33 -0400
Subject: [PATCH 23/48] Update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index d3fe2db..4cbf071 100644
--- a/README.md
+++ b/README.md
@@ -64,6 +64,7 @@
Architecture Overview
+
Three-Tier-Lifetime Hierarchy
Chevron is organized as three nested lifetime tiers, each owned and bounded by the one above it. AppProcess opens the process lifetime and lives for the full
duration of the application. Inside it, GUIEngine opens the GUI lifetime, governing framework initialization, the mainloop, and teardown. Inside that, each
From 722090142f52fc15b82cfd2c5a8b79e39d5d13c4 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 00:28:29 -0400
Subject: [PATCH 24/48] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 4cbf071..fa00a9b 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,7 @@
Chevron is GUI application infrastructure,
- NOT a GUI framework abstraction
+ not a GUI framework abstraction
It does NOT unify GUI frameworks behind a portable interface and it does NOT introduce an explicit widget layer of its own. A Chevron user
@@ -72,7 +72,7 @@
its enclosing tier has opened, and nothing may outlive its close. Every other piece of infrastructure in the library (memory, threading, windowing, dynamic views)
lives somewhere inside this nesting.
-

+
( diagram showcasing major system component lifetime tiers )
From d77c86705f827e733752f3bfd2257027133ff67f Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 02:46:02 -0400
Subject: [PATCH 25/48] Update README.md
---
README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/README.md b/README.md
index fa00a9b..534cd28 100644
--- a/README.md
+++ b/README.md
@@ -76,6 +76,53 @@
( diagram showcasing major system component lifetime tiers )
+
Conceptual Chevron Usage
+
+```cpp
+#include
// `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macros
+#include // Application process-level constructs
+#include // wxWidgets GUI framework engine
+#include // Digital size units
+
+using chevron::AppProcess;
+using WxEngine = chevron::wx::Engine;
+
+using chevron::ProcessMemoryConfig;
+using chevron::ProcessThreadConfig;
+using chevron::ProcessExitReport;
+
+ENTRY_POINT_METHOD_SIGNATURE
+{
+ ProcessMemoryConfig memoryConfig = /*Configure process memory*/;
+ ProcessThreadConfig threadConfig = /*Configure process threads*/;
+
+ AppProcess proc{memoryConfig, threadConfig};
+
+ WxEngine::Configuration runtimeConfig;
+ runtimeConfig.forwardCmdlArgs(ENTRY_POINT_ARG_VARS);
+
+ auto guiEngine = std::make_unique(runtimeConfig);
+ guiEngine->windowing().registerFactory( /*Callable that returns wxFrame pointer*/ );
+
+ proc.commitGUIEngine(std::move(guiEngine));
+ proc.initializeGUIEngine();
+ proc.mainloopEntry();
+
+ ProcessExitReport report = proc.shutdown();
+
+ return report.exitCode;
+}
+```
+
+
+
+
Planned GUI Framework Support
From 9e13e722b51b2058250b9d474f9f8d114c457129 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 02:47:22 -0400
Subject: [PATCH 26/48] Update README.md
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index 534cd28..710a8f8 100644
--- a/README.md
+++ b/README.md
@@ -82,7 +82,6 @@
#include
// `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macros
#include // Application process-level constructs
#include // wxWidgets GUI framework engine
-#include // Digital size units
using chevron::AppProcess;
using WxEngine = chevron::wx::Engine;
From 156544bbdab70f1898ba973073725f119d41e915 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 02:51:34 -0400
Subject: [PATCH 27/48] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 710a8f8..7ad0a07 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@
Conceptual Chevron Usage
```cpp
-#include // `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macros
+#include // `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macro
#include // Application process-level constructs
#include // wxWidgets GUI framework engine
@@ -101,7 +101,7 @@ ENTRY_POINT_METHOD_SIGNATURE
runtimeConfig.forwardCmdlArgs(ENTRY_POINT_ARG_VARS);
auto guiEngine = std::make_unique(runtimeConfig);
- guiEngine->windowing().registerFactory( /*Callable that returns wxFrame pointer*/ );
+ guiEngine->windowing().registerFactory( /*Callable that returns new wxFrame pointer*/ );
proc.commitGUIEngine(std::move(guiEngine));
proc.initializeGUIEngine();
From 32ae29cf186550ee5e2b9acd4c41c09b5bc93d86 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 03:01:57 -0400
Subject: [PATCH 28/48] Update README.md
---
README.md | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 7ad0a07..7fdda43 100644
--- a/README.md
+++ b/README.md
@@ -79,6 +79,13 @@
Conceptual Chevron Usage
```cpp
+/*!
+ * @file main.cpp
+ *
+ * @brief
+ * Conceptual GUI application launch sequence.
+ */
+
#include // `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macro
#include // Application process-level constructs
#include // wxWidgets GUI framework engine
@@ -90,8 +97,11 @@ using chevron::ProcessMemoryConfig;
using chevron::ProcessThreadConfig;
using chevron::ProcessExitReport;
-ENTRY_POINT_METHOD_SIGNATURE
-{
+/*!
+ * @brief
+ * Application entry point (main method)
+ */
+ENTRY_POINT_METHOD_SIGNATURE {
ProcessMemoryConfig memoryConfig = /*Configure process memory*/;
ProcessThreadConfig threadConfig = /*Configure process threads*/;
From ead464d55efa8fc167a305d337ec4ed260372e7a Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 03:05:21 -0400
Subject: [PATCH 29/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 7fdda43..d600c54 100644
--- a/README.md
+++ b/README.md
@@ -83,7 +83,7 @@
* @file main.cpp
*
* @brief
- * Conceptual GUI application launch sequence.
+ * Conceptual portable GUI application launch sequence.
*/
#include // `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macro
From bd83409bd4d5c84fcede466bed974810d99128c2 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 03:16:25 -0400
Subject: [PATCH 30/48] Update README.md
---
README.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/README.md b/README.md
index d600c54..4c944dd 100644
--- a/README.md
+++ b/README.md
@@ -115,10 +115,9 @@ ENTRY_POINT_METHOD_SIGNATURE {
proc.commitGUIEngine(std::move(guiEngine));
proc.initializeGUIEngine();
- proc.mainloopEntry();
+ proc.mainloopEntry();
ProcessExitReport report = proc.shutdown();
-
return report.exitCode;
}
```
From e1277e35e8a244588620b79a7b04bdcdf6ca8d64 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 03:41:51 -0400
Subject: [PATCH 31/48] Update README.md
---
README.md | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 4c944dd..896aeda 100644
--- a/README.md
+++ b/README.md
@@ -93,6 +93,7 @@
using chevron::AppProcess;
using WxEngine = chevron::wx::Engine;
+using chevron::WindowFactory;
using chevron::ProcessMemoryConfig;
using chevron::ProcessThreadConfig;
using chevron::ProcessExitReport;
@@ -102,8 +103,8 @@ using chevron::ProcessExitReport;
* Application entry point (main method)
*/
ENTRY_POINT_METHOD_SIGNATURE {
- ProcessMemoryConfig memoryConfig = /*Configure process memory*/;
- ProcessThreadConfig threadConfig = /*Configure process threads*/;
+ ProcessMemoryConfig memoryConfig = /*Configure process memory*/ ;
+ ProcessThreadConfig threadConfig = /*Configure process threads*/ ;
AppProcess proc{memoryConfig, threadConfig};
@@ -111,7 +112,12 @@ ENTRY_POINT_METHOD_SIGNATURE {
runtimeConfig.forwardCmdlArgs(ENTRY_POINT_ARG_VARS);
auto guiEngine = std::make_unique(runtimeConfig);
- guiEngine->windowing().registerFactory( /*Callable that returns new wxFrame pointer*/ );
+ guiEngine->windowing().registerFactory(
+ WindowFactory{
+ /*Callable that returns new wxFrame pointer*/,
+ /*Window dispatch descriptor*/
+ }
+ );
proc.commitGUIEngine(std::move(guiEngine));
proc.initializeGUIEngine();
From 499c3e38fc7bcaf9a4ec0a9379391d80ea0838df Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Thu, 21 May 2026 03:45:39 -0400
Subject: [PATCH 32/48] Update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 896aeda..baf24bd 100644
--- a/README.md
+++ b/README.md
@@ -112,6 +112,7 @@ ENTRY_POINT_METHOD_SIGNATURE {
runtimeConfig.forwardCmdlArgs(ENTRY_POINT_ARG_VARS);
auto guiEngine = std::make_unique(runtimeConfig);
+
guiEngine->windowing().registerFactory(
WindowFactory{
/*Callable that returns new wxFrame pointer*/,
From 1e1f89121444547d955f66840d34c2e9cbd271a5 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 07:34:28 -0400
Subject: [PATCH 33/48] Update README.md
---
README.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/README.md b/README.md
index baf24bd..4457a29 100644
--- a/README.md
+++ b/README.md
@@ -77,6 +77,11 @@
Conceptual Chevron Usage
+
+ Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
+ engine is prepared for the users chosen framework, and window factories are registered to declare the application's window intent (this is also the ideal opportunity to
+ conduct any necessary pre-launch work).
+
```cpp
/*!
From 29de087d0cf0b08a986ad147297f8cc19b62d019 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 07:48:23 -0400
Subject: [PATCH 34/48] Update README.md
---
README.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 4457a29..c46daf0 100644
--- a/README.md
+++ b/README.md
@@ -77,10 +77,12 @@
Conceptual Chevron Usage
+Bootstrapping / Application Launch
Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
- engine is prepared for the users chosen framework, and window factories are registered to declare the application's window intent (this is also the ideal opportunity to
- conduct any necessary pre-launch work).
+ engine is prepared for the users chosen framework, and window factories are registered to declare window intent (this is also the ideal opportunity to conduct any necessary
+ pre-launch work). The main method handles process-wide setup, it is not application code. The application itself lives downstream of this stage, in the windows and
+ infrastructure that come online during runtime.
```cpp
From 14446f226273c576a2f0b5e450a95456446b2042 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 07:51:42 -0400
Subject: [PATCH 35/48] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index c46daf0..fdd63a2 100644
--- a/README.md
+++ b/README.md
@@ -81,8 +81,8 @@
Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
engine is prepared for the users chosen framework, and window factories are registered to declare window intent (this is also the ideal opportunity to conduct any necessary
- pre-launch work). The main method handles process-wide setup, it is not application code. The application itself lives downstream of this stage, in the windows and
- infrastructure that come online during runtime.
+ pre-launch work). The main method is always tasked with handling process-wide setup, it is not application code. The application itself lives downstream of this stage, in
+ the windows and infrastructure that come online during runtime.
```cpp
From 75ade794f6adb3e89d3afab40a540e0140cb32ed Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 07:59:34 -0400
Subject: [PATCH 36/48] Update README.md
---
README.md | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index fdd63a2..162b307 100644
--- a/README.md
+++ b/README.md
@@ -135,13 +135,10 @@ ENTRY_POINT_METHOD_SIGNATURE {
return report.exitCode;
}
```
-
From 1f67c2126e919dd95d018a131bc7973f3964768e Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 08:05:40 -0400
Subject: [PATCH 37/48] Update README.md
---
README.md | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index 162b307..f6ecf83 100644
--- a/README.md
+++ b/README.md
@@ -80,11 +80,16 @@
Bootstrapping / Application Launch
Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
- engine is prepared for the users chosen framework, and window factories are registered to declare window intent (this is also the ideal opportunity to conduct any necessary
- pre-launch work). The main method is always tasked with handling process-wide setup, it is not application code. The application itself lives downstream of this stage, in
- the windows and infrastructure that come online during runtime.
+ engine is prepared for the users chosen framework, and window factories are registered to declare window intent. This is also the ideal opportunity to conduct any necessary
+ pre-launch work.
+> [!NOTE]
+>
+> The main method is always tasked with handling process-wide setup, it is not application code. The application itself lives downstream of this stage, in the windows
+> and infrastructure that come online during runtime.
+>
+
```cpp
/*!
* @file main.cpp
@@ -135,10 +140,6 @@ ENTRY_POINT_METHOD_SIGNATURE {
return report.exitCode;
}
```
-
- The main method is always tasked with handling process-wide setup, it is not application code. The application itself lives downstream of this stage, in the windows and
- infrastructure that come online during runtime.
-
From cb9306ed584ddd75316173bfef861a45dfce89fc Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 08:50:54 -0400
Subject: [PATCH 38/48] Update README.md
---
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index f6ecf83..7bcd0e1 100644
--- a/README.md
+++ b/README.md
@@ -80,8 +80,9 @@
Bootstrapping / Application Launch
Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
- engine is prepared for the users chosen framework, and window factories are registered to declare window intent. This is also the ideal opportunity to conduct any necessary
- pre-launch work.
+ engine is prepared for the users chosen framework, and window factories are registered to declare window intent. Once setup work is completed on the established GUI engine, it
+ can then be handed off to AppProcess to enter application runtime under Chevron's direction. The bootstrapping phase is also the ideal opportunity to conduct any
+ necessary pre-launch work.
> [!NOTE]
From 47b72f64dbb80c9f82f9390e37e7660f762db826 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 08:53:37 -0400
Subject: [PATCH 39/48] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 7bcd0e1..c26fe3e 100644
--- a/README.md
+++ b/README.md
@@ -80,7 +80,7 @@
Bootstrapping / Application Launch
Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
- engine is prepared for the users chosen framework, and window factories are registered to declare window intent. Once setup work is completed on the established GUI engine, it
+ engine is prepared for the users chosen framework, and window factories are registered to declare window intent. Once setup work is complete on the established GUI engine, it
can then be handed off to AppProcess to enter application runtime under Chevron's direction. The bootstrapping phase is also the ideal opportunity to conduct any
necessary pre-launch work.
From 1135243fa785c6407fd3f6358e85442a787f1944 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 09:54:20 -0400
Subject: [PATCH 40/48] Update README.md
---
README.md | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index c26fe3e..0562a7e 100644
--- a/README.md
+++ b/README.md
@@ -99,7 +99,7 @@
* Conceptual portable GUI application launch sequence.
*/
-#include // `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` macro
+#include // Entry point helpers and macros
#include // Application process-level constructs
#include // wxWidgets GUI framework engine
@@ -111,13 +111,17 @@ using chevron::ProcessMemoryConfig;
using chevron::ProcessThreadConfig;
using chevron::ProcessExitReport;
+// Note:
+// `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` are
+// Chevron defined macros from .
+
/*!
* @brief
* Application entry point (main method)
*/
ENTRY_POINT_METHOD_SIGNATURE {
- ProcessMemoryConfig memoryConfig = /*Configure process memory*/ ;
- ProcessThreadConfig threadConfig = /*Configure process threads*/ ;
+ ProcessMemoryConfig memoryConfig{ /*Configure process memory*/ };
+ ProcessThreadConfig threadConfig{ /*Configure process threads*/ };
AppProcess proc{memoryConfig, threadConfig};
@@ -146,7 +150,10 @@ ENTRY_POINT_METHOD_SIGNATURE {
Planned GUI Framework Support
-
+
From ad4df80e58c3c0bde37164104b17be23c3197a6c Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 17:24:37 -0400
Subject: [PATCH 41/48] Update README.md
---
README.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/README.md b/README.md
index 0562a7e..a6e11ae 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,13 @@
+
+
License
+
+ Chevron is released under the GNU Affero GPLv3 license. See LICENSE for the full text.
+
+
+
From 205d375efc6c659e8d11fe646af2aec9962046db Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 17:32:09 -0400
Subject: [PATCH 42/48] Update README.md
---
README.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/README.md b/README.md
index a6e11ae..70ff817 100644
--- a/README.md
+++ b/README.md
@@ -163,8 +163,6 @@ ENTRY_POINT_METHOD_SIGNATURE {
-
-
( ...This README is still in progress... )
From b146a66014bfcb687a91d54d2af32f927641c9a8 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 18:17:58 -0400
Subject: [PATCH 43/48] Update README.md
---
README.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/README.md b/README.md
index 70ff817..fc65580 100644
--- a/README.md
+++ b/README.md
@@ -69,6 +69,89 @@
+
+
Updates
+
Subsystem Development Progress
+
+
+
+ | Subsystem |
+ Status |
+ Notes |
+
+
+
+
+ | Process Lifecycle |
+ Design |
+ AppProcess design still pending further library development |
+
+
+ | GUI Runtime |
+ Design |
+ GUIEngine design still pending further library development |
+
+
+ | Memory Infrastructure |
+ Design |
+
+ Process-level memory construct designs/implementations complete; Broader memory hierarchy still in-progress
+ |
+
+
+ | Thread Infrastructure |
+ Design |
+ ThreadCore and related entity designs still incomplete |
+
+
+ | Host System Services |
+ Not Started |
+ N/a |
+
+
+ | Logging System |
+ Not Started |
+ N/a |
+
+
+ | Windowing System |
+ Design |
+
+ WindowCoordinator and WindowDispatcher designs nearly complete; WindowEnvelope and WindowingSubsystem still
+ pending further design
+ |
+
+
+ | Window Component System |
+ Design |
+ Pending further window facilities design and development |
+
+
+ | Dynamic View System |
+ Design |
+ Pending further window facilities design and development |
+
+
+ | Event Routing System |
+ Not Started |
+ N/a |
+
+
+ | Messaging Infrastructure |
+ Not Started |
+ N/a |
+
+
+ | Telemetry Infrastructure |
+ Not Started |
+ N/a |
+
+
+
+
+
+
+
Architecture Overview
Three-Tier-Lifetime Hierarchy
From 79d9cadecd2e4ab2936cbf5d27c97111eafaeb6e Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 18:22:23 -0400
Subject: [PATCH 44/48] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index fc65580..596c357 100644
--- a/README.md
+++ b/README.md
@@ -70,7 +70,7 @@
-
Updates
+
Development Updates
Subsystem Development Progress
@@ -124,12 +124,12 @@
| Window Component System |
Design |
- Pending further window facilities design and development |
+ Incomplete design; Pending further window facilities design and development |
| Dynamic View System |
Design |
- Pending further window facilities design and development |
+ Incomplete design; Pending further window facilities design and development |
| Event Routing System |
From be261980313309c2c4cec3c5013ae1178dbc160c Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 18:24:54 -0400
Subject: [PATCH 45/48] Update README.md
---
README.md | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
index 596c357..8c3d528 100644
--- a/README.md
+++ b/README.md
@@ -83,39 +83,39 @@
| Process Lifecycle |
- Design |
+ Design |
AppProcess design still pending further library development |
| GUI Runtime |
- Design |
+ Design |
GUIEngine design still pending further library development |
| Memory Infrastructure |
- Design |
+ Design |
Process-level memory construct designs/implementations complete; Broader memory hierarchy still in-progress
|
| Thread Infrastructure |
- Design |
+ Design |
ThreadCore and related entity designs still incomplete |
| Host System Services |
- Not Started |
+ Not Started |
N/a |
| Logging System |
- Not Started |
+ Not Started |
N/a |
| Windowing System |
- Design |
+ Design |
WindowCoordinator and WindowDispatcher designs nearly complete; WindowEnvelope and WindowingSubsystem still
pending further design
@@ -123,27 +123,27 @@
|
| Window Component System |
- Design |
+ Design |
Incomplete design; Pending further window facilities design and development |
| Dynamic View System |
- Design |
+ Design |
Incomplete design; Pending further window facilities design and development |
| Event Routing System |
- Not Started |
+ Not Started |
N/a |
| Messaging Infrastructure |
- Not Started |
+ Not Started |
N/a |
| Telemetry Infrastructure |
- Not Started |
+ Not Started |
N/a |
From a6380951286a160f78ca28ee1a19de60244f5055 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 18:27:38 -0400
Subject: [PATCH 46/48] Update README.md
---
README.md | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/README.md b/README.md
index 8c3d528..8a72164 100644
--- a/README.md
+++ b/README.md
@@ -75,46 +75,46 @@
- | Subsystem |
- Status |
- Notes |
+ Subsystem |
+ Status |
+ Notes |
- | Process Lifecycle |
+ Process Lifecycle |
Design |
AppProcess design still pending further library development |
- | GUI Runtime |
+ GUI Runtime |
Design |
GUIEngine design still pending further library development |
- | Memory Infrastructure |
+ Memory Infrastructure |
Design |
Process-level memory construct designs/implementations complete; Broader memory hierarchy still in-progress
|
- | Thread Infrastructure |
+ Thread Infrastructure |
Design |
ThreadCore and related entity designs still incomplete |
- | Host System Services |
+ Host System Services |
Not Started |
N/a |
- | Logging System |
+ Logging System |
Not Started |
N/a |
- | Windowing System |
+ Windowing System |
Design |
WindowCoordinator and WindowDispatcher designs nearly complete; WindowEnvelope and WindowingSubsystem still
@@ -122,27 +122,27 @@
|
- | Window Component System |
+ Window Component System |
Design |
Incomplete design; Pending further window facilities design and development |
- | Dynamic View System |
+ Dynamic View System |
Design |
Incomplete design; Pending further window facilities design and development |
- | Event Routing System |
+ Event Routing System |
Not Started |
N/a |
- | Messaging Infrastructure |
+ Messaging Infrastructure |
Not Started |
N/a |
- | Telemetry Infrastructure |
+ Telemetry Infrastructure |
Not Started |
N/a |
From 83c9e2f71d010b6a362a0f95e72846e9539f13d3 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Fri, 22 May 2026 19:27:25 -0400
Subject: [PATCH 47/48] Update README.md
---
README.md | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 8a72164..6cff3ac 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@
thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
-
+
( diagram showcasing components Chevron provides downstream applications )
@@ -163,7 +163,15 @@
lives somewhere inside this nesting.
- ( diagram showcasing major system component lifetime tiers )
+ ( diagram showcasing major system component lifetime tiers )
+ Chevron Application Structure
+
+ Every Chevron application is structured around a single AppProcess at its root. AppProcess owns the GUIEngine, an abstraction whose
+ concrete implementation matches the user's chosen GUI framework. The GUI engine hosts Chevron's windowing infrastructure: a dispatcher that creates windows, a coordinator
+ that manages them once they exist, and a windowing subsystem that surfaces these components together as a coherent user-facing API. Live windows are represented by
+ WindowEnvelope instances held by the coordinator, each carrying its own per-window infrastructure (PWI). The application's behavior
+ lives inside those windows, where the user writes code against the chosen GUI framework directly.
+
Conceptual Chevron Usage
From d34fc400462297c5af039b7ec0fffe5eb9877f41 Mon Sep 17 00:00:00 2001
From: Jamon Bailey <83630529+jamon-bailey@users.noreply.github.com>
Date: Wed, 3 Jun 2026 19:35:58 -0400
Subject: [PATCH 48/48] README Update
---
docs/templ/README.md.in | 238 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 237 insertions(+), 1 deletion(-)
diff --git a/docs/templ/README.md.in b/docs/templ/README.md.in
index 914f912..8cc328b 100644
--- a/docs/templ/README.md.in
+++ b/docs/templ/README.md.in
@@ -19,5 +19,241 @@
-
( Nothing here yet, come back soon! )
+

+
+
+
+
What is this?
+
+ Every C++ GUI application has to settle the same foundational details before it can really begin: how memory is structured, how concurrent threads of execution are managed,
+ how windows are handled, how UI views change at runtime, and more. None of this is the application itself, yet it is crucial to the applications functionality.
+
+
+
+ Chevron is a C++20 GUI application infrastructure library that owns the mechanics of a modern GUI application (process lifetime, window scaffolding, dynamic view handling,
+ thread infrastructure, etc.) so user code can focus on the application itself, written directly against the GUI framework the user chose.
+
+
+

+
( diagram showcasing components Chevron provides downstream applications )
+
+
+> [!WARNING]
+>
+> Chevron is in active early development. The API is unstable and breaking changes should be expected. This library is not yet suitable for production code!
+>
+
+
+
+
+
What Chevron is NOT
+
+ Chevron is GUI application infrastructure,
+
+
+ not a GUI framework abstraction
+
+
+ It does NOT unify GUI frameworks behind a portable interface and it does NOT introduce an explicit widget layer of its own. A Chevron user
+ picks exactly one GUI framework, includes it directly, and writes GUI code similar to how they typically would. What changes is the structural environment that code lives
+ inside (the parts of the application that aren't about the GUI but are around it).
+
+
+
+
+
License
+
+ Chevron is released under the GNU Affero GPLv3 license. See LICENSE for the full text.
+
+
+
+
+
+
+
Development Updates
+
Subsystem Development Progress
+
+
+
+ | Subsystem |
+ Status |
+ Notes |
+
+
+
+
+ | Process Lifecycle |
+ Design |
+ AppProcess design still pending further library development |
+
+
+ | GUI Runtime |
+ Design |
+ GUIEngine design still pending further library development |
+
+
+ | Memory Infrastructure |
+ Design |
+
+ Process-level memory construct designs/implementations complete; Broader memory hierarchy still in-progress
+ |
+
+
+ | Thread Infrastructure |
+ Design |
+ ThreadCore and related entity designs still incomplete |
+
+
+ | Host System Services |
+ Not Started |
+ N/a |
+
+
+ | Logging System |
+ Not Started |
+ N/a |
+
+
+ | Windowing System |
+ Design |
+
+ WindowCoordinator and WindowDispatcher designs nearly complete; WindowEnvelope and WindowingSubsystem still
+ pending further design
+ |
+
+
+ | Window Component System |
+ Design |
+ Incomplete design; Pending further window facilities design and development |
+
+
+ | Dynamic View System |
+ Design |
+ Incomplete design; Pending further window facilities design and development |
+
+
+ | Event Routing System |
+ Not Started |
+ N/a |
+
+
+ | Messaging Infrastructure |
+ Not Started |
+ N/a |
+
+
+ | Telemetry Infrastructure |
+ Not Started |
+ N/a |
+
+
+
+
+
+
+
+
+
Architecture Overview
+
Three-Tier-Lifetime Hierarchy
+
+ Chevron is organized as three nested lifetime tiers, each owned and bounded by the one above it. AppProcess opens the process lifetime and lives for the full
+ duration of the application. Inside it, GUIEngine opens the GUI lifetime, governing framework initialization, the mainloop, and teardown. Inside that, each
+ live window is represented by a WindowEnvelope, created when a window is dispatched and destroyed when that window closes. Nothing in a tier may exist before
+ its enclosing tier has opened, and nothing may outlive its close. Every other piece of infrastructure in the library (memory, threading, windowing, dynamic views)
+ lives somewhere inside this nesting.
+
+

+
( diagram showcasing major system component lifetime tiers )
+
Chevron Application Structure
+
+ Every Chevron application is structured around a single AppProcess at its root. AppProcess owns the GUIEngine, an abstraction whose
+ concrete implementation matches the user's chosen GUI framework. The GUI engine hosts Chevron's windowing infrastructure: a dispatcher that creates windows, a coordinator
+ that manages them once they exist, and a windowing subsystem that surfaces these components together as a coherent user-facing API. Live windows are represented by
+ WindowEnvelope instances held by the coordinator, each carrying its own per-window infrastructure (PWI). The application's behavior
+ lives inside those windows, where the user writes code against the chosen GUI framework directly.
+
+
+
+Conceptual Chevron Usage
+Bootstrapping / Application Launch
+
+ Chevron applications are bootstrapped from the users own main() entry point. During this stage, the process is tailor configured to the applications profile, a GUI
+ engine is prepared for the users chosen framework, and window factories are registered to declare window intent. Once setup work is complete on the established GUI engine, it
+ can then be handed off to AppProcess to enter application runtime under Chevron's direction. The bootstrapping phase is also the ideal opportunity to conduct any
+ necessary pre-launch work.
+
+
+> [!NOTE]
+>
+> The main method is always tasked with handling process-wide setup, it is not application code. The application itself lives downstream of this stage, in the windows
+> and infrastructure that come online during runtime.
+>
+
+```cpp
+/*!
+ * @file main.cpp
+ *
+ * @brief
+ * Conceptual portable GUI application launch sequence.
+ */
+
+#include // Entry point helpers and macros
+#include // Application process-level constructs
+#include // wxWidgets GUI framework engine
+
+using chevron::AppProcess;
+using WxEngine = chevron::wx::Engine;
+
+using chevron::WindowFactory;
+using chevron::ProcessMemoryConfig;
+using chevron::ProcessThreadConfig;
+using chevron::ProcessExitReport;
+
+// Note:
+// `ENTRY_POINT_METHOD_SIGNATURE` and `ENTRY_POINT_ARG_VARS` are
+// Chevron defined macros from .
+
+/*!
+ * @brief
+ * Application entry point (main method)
+ */
+ENTRY_POINT_METHOD_SIGNATURE {
+ ProcessMemoryConfig memoryConfig{ /*Configure process memory*/ };
+ ProcessThreadConfig threadConfig{ /*Configure process threads*/ };
+
+ AppProcess proc{memoryConfig, threadConfig};
+
+ WxEngine::Configuration runtimeConfig;
+ runtimeConfig.forwardCmdlArgs(ENTRY_POINT_ARG_VARS);
+
+ auto guiEngine = std::make_unique(runtimeConfig);
+
+ guiEngine->windowing().registerFactory(
+ WindowFactory{
+ /*Callable that returns new wxFrame pointer*/,
+ /*Window dispatch descriptor*/
+ }
+ );
+
+ proc.commitGUIEngine(std::move(guiEngine));
+ proc.initializeGUIEngine();
+
+ proc.mainloopEntry();
+ ProcessExitReport report = proc.shutdown();
+ return report.exitCode;
+}
+```
+
+
+
+
+
Planned GUI Framework Support
+
+
+
+
+
( ...This README is still in progress... )