aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/BaseTab.hpp
blob: c8efd11a5fd1a7f8d269a5b87445b9277f6e4277 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

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

wxDECLARE_EVENT(NEW_GAME_EVENT, wxCommandEvent);

class BaseTab : public TabBase, public TabInfos {
  /// @brief The opened database
  std::shared_ptr<GameBase> base;
  /// @brief The last opened game
  std::shared_ptr<Game> game;

  /// All sub tabs
  BaseGameTab *games_tab;
  BaseImportTab *import_tab;
  BaseManageTab *manage_tab;

  std::string base_file;

  void OnOpenGame(wxCommandEvent &event);
  void OnSave(wxCommandEvent &event);
  void OpenDatabase(std::string dbpath);
  
public:
  BaseTab(wxFrame *parent, std::string base_file);

  void Refresh();
  std::shared_ptr<Game> GetGame() { return (std::shared_ptr<Game>(game)); }
  std::shared_ptr<GameBase> GetBase() { return (std::shared_ptr<GameBase>(base)); };
};