  -   Engine.    .
        (0,0),  X  ,  Y .
   ,   .

,  Engine:
      ConsoleGraphEngine::Core

Engine() -   .
Engine(Debug::Logger*) -         (  )
Screen* addScreenXY(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown, std::string name = "") -  
 ,   .    ,   .   
 .   -  .    ,      ID.
Screen* addScreenSize(int XLeftUp, int YLeftUp, int XSize, int YSize, std::string name = "") -  .  
    ,      X   Y.     .
  -  .    ,      ID.
bool registerScreen(Screen*) -       ,     ,   
      .
bool setLogger(Debug::Logger*) -      .
void registerEvent(int TypeEvent, int NumberEvent, std::string TextEvent, bool IsFatal = false) -  
  .       Debug::EventType.
Screen* getScreenById(int) -    ID.
Screen* getScreenByName(std::string) -    .
bool setActiveScreenById(int) -     ID .
bool setActiveScreenByName(std::string) -      .
Screen* getActiveScreen() -     .
bool deleteScreenById(int) -    ID.
bool deleteScreenByName(std::string) -    .
void remove() -  .

 Screen:
      ConsoleGraphEngine::Core

Screen() -   .
Screen(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown, bool IsSize = false) - ,    
  .  IsSize == true,        .  - 
     .
bool setConsoleGraphEngine(Engine*) -    .   .
int getId() -  ID.
bool setId(int) -  ID.   .
std::string getName() -  .
bool setName(std::string) -  .
bool setBorderXY(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown) -     
   .
bool setBorderSize(int XLeftUp, int YLeftUp, int XSize, int YSize) -     
  .
bool createMap() -   .       (    
,    ).
Engine* getConsoleGraphEngine() -    ,    .
Widget* addWidgetXY(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown, std::string name = "") -  
 ,   .    ,   .   
 .   -  .    ,      ID.  
  !  !
Widget* addWidgetSize(int XLeftUp, int YLeftUp, int XSize, int YSize, std::string name = "") -  .  
    ,      X   Y.     . 
   !  !
bool registerWidget(Widget*) -       ,     ,   
      .
bool setActive() -   .
Widget* getWidgetById(int) -    ID.
Widget* getWidgetByName(std::string) -    .
void setInterface(Color TextColor, Color BackGroundColor) -      .  , 
      !
void update(bool IsFull = false) -  .  IsFull == true,      (. ).
void fullUpdate() -   .     ,  update(true).   
  ,   ,     . , , ,  update.
        ( !)  .
void show() -  .   ,      (  !)
void fullShow() -   .   !
void setPointScreen(int CodeChar, Color TextColor, Color BackGroundColor, int XCoord, int YCoord) -   
     CodeChar   TextColor   BackGroundColor.
void deleteSymbol(int XCoord, int YCoord) -    .      .
bool deleteWidgetById(int) -    ID (    ).
bool deleteWidgetByName(std::string) -     (    ).
void remove() -  .

 ,         update  fullUpdate!  show (  
   ,        .       ).

 Widget:
      ConsoleGraphEngine::Core

Widget() -   .
Widget(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown, bool IsSize = false) - ,    
  .  IsSize == true,        .  - 
     .  ,    !    .
bool setScreen(Screen*) -    .   .
int getId() -  ID.
bool setId(int) -  ID.   .
std::string getName() -  .
bool setName(std::string) -  .
bool setBorderXY(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown) -     
   .
bool setBorderSize(int XLeftUp, int YLeftUp, int XSize, int YSize) -     
  .
bool createMap() -   .       (    
,    ).
void show() -    ,        update()  fullUpdate,   .
void typeString(std::string) -   string  .       
  string.
void typeChar(char) -    .
void setInterface(Color TextColor, Color BackGroundColor) -      .
void setColorOutput(Color TextColor, Color BackGroundColor) -       .
void setStandartColorConsoleOutput() -         .
void setStandartColorOutput() -   ( setInterface)  .
void setCursorPosition(int XPos, int YPos) -   .
void clear(bool IsFull = false) -  IsFull == false ( ),     
.  IsFull == true,   (. ).
void fullClear() -    .    ,   setInterface.
void setFlag(Flags::FlagsWidget, int Value) -   .   Flags::FlagsWidget.
int getFlag(Flags::FlagsWidget) -   .
void remove() -  .

 :
(ConsoleGraphEngine::SpecialFunctions)
std::string Itos(int) -  int  string.

 Logger:
      ConsoleGraphEngine::Debug

Logger() -   
void registerEvent(int TypeEvent, int NumberEvent, std::string TextEvent, bool IsFatal = false) -  
(.          Engine).
void setRegisterEventType(int TypeEvent) -   .    Debug::RegisterEventType
void setEngine(Core::Engine*) -   .   .
bool setOptionsForGraphConsoleXY(int XLeftUp, int YLeftUp, int XRightDown, int YRightDown, std::string name = "") - 
     STANDART_CONSOLE_GRAPH.        .
bool setOptionsForGraphConsoleSize(int XLeftUp, int YLeftUp, int XSize, int YSize, std::string name = "") - 
 ,        .
std::string getNameScreen() -     .
P.S.      STANDART_CONSOLE_GRAPH,  STANDART_CONSOLE,     
     .       .

  .

.            scr->update().

#include <ConsoleGraphEngine.h>
using namespace ConsoleGraphEngine;
using namespace Core;

using namespace Debug;

#include <conio.h>
#include <iostream>
using namespace std;

int main()
{
    //Logger* aa = new Logger;
    //Engine* a = new Engine(aa);
    Engine* a = new Engine;
    Screen* scr =  new Screen(0,0,78,50);
    scr->createMap();
    scr->setInterface(RedL, Red);
    a->registerScreen(scr);
    Widget* wdg = scr->addWidgetSize(5,5,30,20);
    wdg->createMap();
    wdg->setInterface(RedL, White);
    wdg->typeString("Hello, world!\n");
    wdg->typeString("Good bye!");
    scr->setActive();
    scr->update();
    getch();
    Widget* wdg1 = scr->addWidgetSize(10,10,30,20);
    wdg1->createMap();
    wdg1->setInterface(BlueLL, Yellow);
    wdg1->typeString("Hello, world!\n");
    wdg1->typeString("Good bye!");
    scr->update();
    getch();
    scr->deleteWidgetByName(wdg1->getName());
    scr->update();
    getch();
    return 0;
}

:

#include <ConsoleGraphEngine.h>
using namespace ConsoleGraphEngine;
using namespace Core;

using namespace Debug;

#include <conio.h>
#include <iostream>
using namespace std;

int main()
{
    Engine* a = new Engine;
    Logger* log = new Logger;
    log->setOptionsForGraphConsoleSize(0,0,80,30,"ES");
    log->setRegisterEventType(RegisterEventType::STANDART_CONSOLE_GRAPH);
    a->setLogger(log);
    //...
    Screen* scr11 = a->getScreenByName("ES");
    scr11->setActive();
    scr11->update();
    getch();
    //...
    Screen* scr = a->addScreenSize(0,0,30,30);
    scr11->update();
    getch();
    scr->createMap();
    scr11->update();
    getch();
    scr->setInterface(Yellow, Red);
    scr11->update();
    getch();
    Widget* aa = scr->addWidgetSize(1,1,10,10);
    scr11->update();
    getch();
    aa->createMap();
    scr11->update();
    getch();
    aa->setInterface(BlueLL, Green);
    scr11->update();
    getch();
    aa->typeString("Hello, World!\nBye!");
    scr11->update();
    getch();
    scr->setActive();
    scr->update();
    getch();
    scr11->setActive();
    scr11->fullUpdate();
    getch();
    return 0;
}
