DEB_GUI is a library that makes it easy to set up a graphical application consisting of a application message pump and main window with other gui elements as Edge Chromium web elements and other native window GUI elements. 

The GUI in DEB library tree structure.

DEB_App

DEB_Window

DEB_VisualWindow

DEB_CompositeWindow

DEB_MainWindow

DEB_ChildWindow

DEB_BrowserWindow

DEB_WindowControl

DEB_ButtonControl

...

DEB_Visual

DEB_Text

...

The GUI library are organized the the structure shown above but the parts we will look into here are the ones with dealing with the top level windows as that is what is of interest at the moment. The elements of the GUI can be created in C++, by scripting langues and by JSON definitions. 

DEB_App

This is the first element that needs to be defined in a app. It will hold the message pump, directories in use, definitions and a pointer to the top level window(s).

DEB_Window

The means of creating and handling windows. Can not be used on it's own. It is just the minimum needed by all other windows.

DEB_VisualWindow

The means of managing a self contained window and it lifespan and placement in another window that can hold window like DEB_MainWindow.

DEB_CompositeWindow

This is a window that can contain other elements like controls or visuals.It will also handle mouse and keyboard input for the contained elements.

DEB_MainWindow

The only type of window that is connected to DEB_App. This can contain any of the other windows.

DEB_ChildWindow

Can be part of a main window and contain other elements. Manage resize, move and repaint as the main window changes.

DEB_BrowserWindow

A child type window that holds a Edge Chromium web browser element.

DEB_WindowControl

A window control element that can live in any Composite window.

DEB_Visual

A paint-able element that is controlled by another window.