class EditAreaHolder{
public:
    vector<shared_ptr<EditAreaHolderTabBut>> TabButtons;
    vector<shared_ptr<EditArea>> EditAreas;
    void Init();
    GtkStack *Container;
    GtkBox *Switcher;
    GtkGrid *BaseGrid;
    void Show(const shared_ptr<EditArea>& editarea);
    void NewTabButton();
};

Use init to apply properties in the class.

EditAreaHolder is the container for EditArea. EditArea will be placed inside GtkStack *Container, and EditAreaHolderTabButton will be placed inside GtkBox *Seitcher

call Show() method to show the EditArea. Show() method will check if the EditArea was opened in the container.