summary refs log tree commit diff stats
path: root/wizard.h
blob: 826985221db4ea913b2f589dd39d4970b118e003 (plain) (blame)
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
#ifndef WIZARD_H_1014B13E
#define WIZARD_H_1014B13E

#include <Magick++.h>

#include <functional>
#include <random>
#include <string>

#include "cardset.h"
#include "imagestore.h"

class wizard {
 public:
  using status_callback_type = std::function<void(const std::string& status)>;

  wizard(const cardset& cards, const imagestore& images, std::string text,
         std::mt19937& rng);

  void set_status_callback(status_callback_type callback);

  Magick::Image run();

 private:
  const cardset& cards_;
  const imagestore& images_;
  std::string text_;

  std::mt19937 rng_;

  status_callback_type status_callback_;
};

#endif /* end of include guard: WIZARD_H_1014B13E */