# bonus630/dockertemplatex7 architecture

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

- Interactive diagram: https://gitdiagram.com/bonus630/dockertemplatex7
- Repository: https://github.com/bonus630/dockertemplatex7

## Overview

DockerTemplateX7 is a collection of Visual Studio templates for building CorelDRAW add-ins, rather than a single add-in. The documented authoring workflow is to choose a template suited to the add-in—toolbar control, menu item, custom tool, or docker—and use it to create a project for CorelDRAW. The tree also includes project-helper and wizard code, but the excerpts do not establish how those pieces connect to template creation. Theme-controller behavior is visible in sampled source; other template internals are represented only where the README or tree supports them.

Main entry points: [`MenuItemTemplateCS/ControlUI.xaml.cs`](https://github.com/bonus630/dockertemplatex7/blob/master/MenuItemTemplateCS/ControlUI.xaml.cs) (Menu item), [`DockerTemplateCS/StylesController.cs`](https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateCS/StylesController.cs) (WPF resources), [`ButtonTemplateCS/ControlUI.xaml.cs`](https://github.com/bonus630/dockertemplatex7/blob/master/ButtonTemplateCS/ControlUI.xaml.cs) (Toolbar control), [`CustomToolTemplateCS/DrawTool.cs`](https://github.com/bonus630/dockertemplatex7/blob/master/CustomToolTemplateCS/DrawTool.cs) (Custom tool)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_templates["Add-in templates"]
  node_control["Toolbar control<br/>[ControlUI.xaml.cs]"]
  node_menu["Menu item<br/>[ControlUI.xaml.cs]"]
  node_customtool["Custom tool<br/>[DrawTool.cs]"]
  node_docker["Docker add-in<br/>[DockerUI.xaml.cs]"]
  node_commandbar["Command bar<br/>[ControlUI.xaml.cs]"]
  node_dockerjs["JavaScript docker<br/>[basic.js]"]
  node_macro["Macro library<br/>[Main.cs]"]
  node_menu_data["Menu data sources"]
end

subgraph group_ui["UI and styling"]
  node_control_style["Control theme"]
  node_docker_style["Docker theme"]
  node_resources["WPF resources"]
end

subgraph group_wizard["Project configuration"]
  node_wizard["Template wizard<br/>[Wizard.cs]"]
  node_helper["Project helper<br/>[Helper.cs]"]
end

node_developer(("Add-in developer"))
node_corel(("CorelDRAW"))
node_developer_result["CorelDRAW add-in"]

node_developer -->|"chooses template"| node_control
node_developer -->|"chooses template"| node_menu
node_developer -->|"chooses template"| node_customtool
node_developer -->|"chooses template"| node_docker
node_control -->|"creates project"| node_developer_result
node_menu -->|"creates project"| node_developer_result
node_customtool -->|"creates project"| node_developer_result
node_docker -->|"creates project"| node_developer_result
node_developer_result -->|"runs in"| node_corel
node_menu -->|"uses data sources"| node_menu_data
node_corel -->|"notifies theme changes"| node_control_style
node_corel -->|"notifies theme changes"| node_docker_style
node_corel -->|"provides theme preference"| node_resources
node_control_style -->|"updates resource keys"| node_resources
node_docker_style -->|"updates resource keys"| node_resources
node_developer -->|"configures project"| node_wizard
node_wizard -->|"uses helper"| node_helper

click node_control "https://github.com/bonus630/dockertemplatex7/blob/master/ButtonTemplateCS/ControlUI.xaml.cs"
click node_menu "https://github.com/bonus630/dockertemplatex7/blob/master/MenuItemTemplateCS/ControlUI.xaml.cs"
click node_customtool "https://github.com/bonus630/dockertemplatex7/blob/master/CustomToolTemplateCS/DrawTool.cs"
click node_docker "https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateCS/DockerUI.xaml.cs"
click node_commandbar "https://github.com/bonus630/dockertemplatex7/blob/master/CommandBarStaticTemplate/ControlUI.xaml.cs"
click node_dockerjs "https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateJS/js/basic.js"
click node_macro "https://github.com/bonus630/dockertemplatex7/blob/master/MacroClassLibraryCS/Main.cs"
click node_menu_data "https://github.com/bonus630/dockertemplatex7/blob/master/MenuItemTemplateCS/DataSource/DataSourceFactory.cs"
click node_control_style "https://github.com/bonus630/dockertemplatex7/blob/master/SharedFiles/Control/StylesController.cs"
click node_docker_style "https://github.com/bonus630/dockertemplatex7/blob/master/SharedFiles/Docker/StylesController.cs"
click node_resources "https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateCS/StylesController.cs"
click node_wizard "https://github.com/bonus630/dockertemplatex7/blob/master/Wizard001/Wizard.cs"
click node_helper "https://github.com/bonus630/dockertemplatex7/blob/master/ProjectHelper/Helper.cs"

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_control,node_menu,node_customtool,node_docker,node_commandbar,node_dockerjs,node_macro,node_menu_data toneBlue
class node_control_style,node_docker_style,node_resources toneAmber
class node_wizard,node_helper toneMint
class node_developer,node_corel,node_developer_result toneIndigo
```

## Components

### Add-in templates

- [Toolbar control](https://github.com/bonus630/dockertemplatex7/blob/master/ButtonTemplateCS/ControlUI.xaml.cs): `ButtonTemplateCS/ControlUI.xaml.cs`
- [Menu item](https://github.com/bonus630/dockertemplatex7/blob/master/MenuItemTemplateCS/ControlUI.xaml.cs): `MenuItemTemplateCS/ControlUI.xaml.cs`
- [Custom tool](https://github.com/bonus630/dockertemplatex7/blob/master/CustomToolTemplateCS/DrawTool.cs): `CustomToolTemplateCS/DrawTool.cs`
- [Docker add-in](https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateCS/DockerUI.xaml.cs): `DockerTemplateCS/DockerUI.xaml.cs`
- [Command bar](https://github.com/bonus630/dockertemplatex7/blob/master/CommandBarStaticTemplate/ControlUI.xaml.cs): `CommandBarStaticTemplate/ControlUI.xaml.cs`
- [JavaScript docker](https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateJS/js/basic.js): `DockerTemplateJS/js/basic.js`
- [Macro library](https://github.com/bonus630/dockertemplatex7/blob/master/MacroClassLibraryCS/Main.cs): `MacroClassLibraryCS/Main.cs`
- [Menu data sources](https://github.com/bonus630/dockertemplatex7/blob/master/MenuItemTemplateCS/DataSource/DataSourceFactory.cs): `MenuItemTemplateCS/DataSource/DataSourceFactory.cs`

### UI and styling

- [Control theme](https://github.com/bonus630/dockertemplatex7/blob/master/SharedFiles/Control/StylesController.cs): `SharedFiles/Control/StylesController.cs`
- [Docker theme](https://github.com/bonus630/dockertemplatex7/blob/master/SharedFiles/Docker/StylesController.cs): `SharedFiles/Docker/StylesController.cs`
- [WPF resources](https://github.com/bonus630/dockertemplatex7/blob/master/DockerTemplateCS/StylesController.cs): `DockerTemplateCS/StylesController.cs`

### Project configuration

- [Template wizard](https://github.com/bonus630/dockertemplatex7/blob/master/Wizard001/Wizard.cs): `Wizard001/Wizard.cs`
- [Project helper](https://github.com/bonus630/dockertemplatex7/blob/master/ProjectHelper/Helper.cs): `ProjectHelper/Helper.cs`

### Other components

- **Add-in developer**
- **CorelDRAW**
- **CorelDRAW add-in**

## Connections

- Add-in developer → Toolbar control: chooses template
- Add-in developer → Menu item: chooses template
- Add-in developer → Custom tool: chooses template
- Add-in developer → Docker add-in: chooses template
- Toolbar control → CorelDRAW add-in: creates project
- Menu item → CorelDRAW add-in: creates project
- Custom tool → CorelDRAW add-in: creates project
- Docker add-in → CorelDRAW add-in: creates project
- CorelDRAW add-in → CorelDRAW: runs in
- Menu item → Menu data sources: uses data sources
- CorelDRAW → Control theme: notifies theme changes
- CorelDRAW → Docker theme: notifies theme changes
- CorelDRAW → WPF resources: provides theme preference
- Control theme → WPF resources: updates resource keys
- Docker theme → WPF resources: updates resource keys
- Add-in developer → Template wizard: configures project
- Template wizard → Project helper: uses helper
