aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/BaseTab.hpp
blob: 51b8fa48fa28cf411a815cbe132e00c729a53983 (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
34
#pragma once

#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;
  std::shared_ptr<GameListManager> glm;

  void OnOpenGame(wxCommandEvent &event);
  void OnSave(wxCommandEvent &event);
  
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)); };
};