# gremarkundeletabledc/winezctrlkit architecture

> Architecture diagram of the GitHub repository gremarkundeletabledc/winezctrlkit, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/gremarkundeletabledc/winezctrlkit
- Repository: https://github.com/gremarkundeletabledc/winezctrlkit

## Overview

Eck is a Windows C++ framework spanning native and custom UI, graphics/text rendering, and system and data utilities. A typical user workflow is to build an application around a window and controls, then use framework services to render and handle data; the tree includes both conventional and Dui templates, but the README is empty and their source excerpts are not provided, so their detailed wiring is uncertain. The graph emphasizes identifiable runtime subsystems and explicit relationships in sampled code rather than implying a single mandatory pipeline.

Main entry points: [`eck/UiListController.h`](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h) (List controller), [`eck/ShellMenuInfo.h`](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/ShellMenuInfo.h) (Shell menu discovery), [`EckTemplate/Entry.cpp`](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/Entry.cpp) (App entry), [`EckTemplate/CApp.cpp`](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/CApp.cpp) (App setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["UI Framework"]
  node_entry["App entry<br/>[Entry.cpp]"]
  node_app["App setup<br/>[CApp.cpp]"]
  node_window["Main window<br/>[CWindowMain.cpp]"]
  node_windowlib["Window base<br/>[CWindow.h]"]
  node_controls["UI controls<br/>[CButton.h]"]
  node_dui["Dui controls<br/>[DuiBase.h]"]
  node_eui["Eui controls<br/>[EuiBase.h]"]
  node_layouts["Layout system<br/>[ILayout.h]"]
  node_listcontroller["List controller<br/>[UiListController.h]"]
  node_listadapter["List adapter<br/>[UiListController.h]"]
  node_listhost["List host<br/>[UiListController.h]"]
end

subgraph group_render["Rendering and Text"]
  node_graphics["Graphics helpers<br/>[GraphicsHelper.h]"]
  node_geometry["Geometry rendering<br/>[GeometryRender.h]"]
  node_fontatlas["Font atlas manager"]
  node_atlas["Mirrored atlas<br/>[KwMirroredAtlas.h]"]
  node_textservices["Text services API"]
end

subgraph group_system["Windows Services"]
  node_file["File access<br/>[CFile.h]"]
  node_registry["Registry access<br/>[CRegistryKey.h]"]
  node_shellmenu["Shell menu discovery<br/>[ShellMenuInfo.h]"]
end

subgraph group_data["Data and Utilities"]
  node_json["JSON handling<br/>[Json.h]"]
  node_xml["XML handling<br/>[pugixml.hpp]"]
  node_compression["Compression<br/>[Compress.h]"]
  node_string["String utilities<br/>[StringUtility.h]"]
end

node_developer(("Application developer"))
node_richeditdll["Windows text DLLs"]

node_developer -->|"starts app"| node_entry
node_entry -->|"dispatches to"| node_app
node_app -->|"sets up"| node_window
node_listcontroller -->|"requests item data"| node_listadapter
node_listcontroller -->|"queries view"| node_listhost
node_fontatlas -->|"allocates glyphs"| node_atlas
node_textservices -->|"loads services"| node_richeditdll
node_shellmenu -->|"reads menu data"| node_registry
node_shellmenu -->|"enumerates files"| node_file

click node_entry "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/Entry.cpp"
click node_app "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/CApp.cpp"
click node_window "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/CWindowMain.cpp"
click node_windowlib "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CWindow.h"
click node_controls "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CButton.h"
click node_dui "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/DuiBase.h"
click node_eui "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/EuiBase.h"
click node_layouts "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/ILayout.h"
click node_listcontroller "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h"
click node_listadapter "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h"
click node_listhost "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h"
click node_graphics "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/GraphicsHelper.h"
click node_geometry "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/GeometryRender.h"
click node_fontatlas "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/KwFontAtlasManager.h"
click node_atlas "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/KwMirroredAtlas.h"
click node_textservices "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/TextServicesDefine.h"
click node_file "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CFile.h"
click node_registry "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CRegistryKey.h"
click node_shellmenu "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/ShellMenuInfo.h"
click node_json "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/Json.h"
click node_xml "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/ThirdPartyLib/PugiXml/pugixml.hpp"
click node_compression "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/Compress.h"
click node_string "https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/StringUtility.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_app,node_window,node_windowlib,node_controls,node_dui,node_eui,node_layouts,node_listcontroller,node_listadapter,node_listhost toneBlue
class node_graphics,node_geometry,node_fontatlas,node_atlas,node_textservices toneAmber
class node_file,node_registry,node_shellmenu toneMint
class node_json,node_xml,node_compression,node_string toneRose
class node_developer,node_richeditdll toneIndigo
```

## Components

### UI Framework

- [App entry](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/Entry.cpp): `EckTemplate/Entry.cpp`
- [App setup](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/CApp.cpp): `EckTemplate/CApp.cpp`
- [Main window](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/EckTemplate/CWindowMain.cpp): `EckTemplate/CWindowMain.cpp`
- [Window base](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CWindow.h): `eck/CWindow.h`
- [UI controls](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CButton.h): `eck/CButton.h`
- [Dui controls](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/DuiBase.h): `eck/DuiBase.h`
- [Eui controls](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/EuiBase.h): `eck/EuiBase.h`
- [Layout system](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/ILayout.h): `eck/ILayout.h`
- [List controller](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h): `eck/UiListController.h`
- [List adapter](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h): `eck/UiListController.h`
- [List host](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/UiListController.h): `eck/UiListController.h`

### Rendering and Text

- [Graphics helpers](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/GraphicsHelper.h): `eck/GraphicsHelper.h`
- [Geometry rendering](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/GeometryRender.h): `eck/GeometryRender.h`
- [Font atlas manager](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/KwFontAtlasManager.h): `eck/KwFontAtlasManager.h`
- [Mirrored atlas](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/KwMirroredAtlas.h): `eck/KwMirroredAtlas.h`
- [Text services API](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/TextServicesDefine.h): `eck/TextServicesDefine.h`

### Windows Services

- [File access](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CFile.h): `eck/CFile.h`
- [Registry access](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/CRegistryKey.h): `eck/CRegistryKey.h`
- [Shell menu discovery](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/ShellMenuInfo.h): `eck/ShellMenuInfo.h`

### Data and Utilities

- [JSON handling](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/Json.h): `eck/Json.h`
- [XML handling](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/ThirdPartyLib/PugiXml/pugixml.hpp): `ThirdPartyLib/PugiXml/pugixml.hpp`
- [Compression](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/Compress.h): `eck/Compress.h`
- [String utilities](https://github.com/gremarkundeletabledc/winezctrlkit/blob/master/eck/StringUtility.h): `eck/StringUtility.h`

### Other components

- **Application developer**
- **Windows text DLLs**

## Connections

- Application developer → App entry: starts app
- App entry → App setup: dispatches to
- App setup → Main window: sets up
- List controller → List adapter: requests item data
- List controller → List host: queries view
- Font atlas manager → Mirrored atlas: allocates glyphs
- Text services API → Windows text DLLs: loads services
- Shell menu discovery → Registry access: reads menu data
- Shell menu discovery → File access: enumerates files
