#pragma once

#include "ochess.hpp"
#include "GameListManager.hpp"
#include "gamebase/GameBase.hpp"
#include "BaseImportTab.hpp"
#include "BaseGameTab.hpp"

class BaseManageTab : public TabBase_TabManage {

    /// Never free the following pointers in that class
    std::shared_ptr<GameListManager> glm;
    std::shared_ptr<GameBase> base;

    /// Pointers for data access
    BaseImportTab *import_tab;
    BaseGameTab *games_tab;

public:
    BaseManageTab(wxFrame *parent, std::shared_ptr<GameBase> db, 
    std::shared_ptr<GameListManager> glm, BaseImportTab *import_tab, BaseGameTab *games_tab);
    void RefreshInformations();
    void Reset(std::shared_ptr<GameBase> db);
};