OmniPhotos
Dialog.hpp
1 #pragma once
2 
3 #include <string>
4 
5 
6 class Dialog
7 {
8  //private:
9  // char const * lTheHexColor;
10  // unsigned char lRgbColor[3];
11 
12 public:
13  //from tiny file dialogs
14  char const* lTmp = nullptr;
15  int lIntValue = 0;
16  char const* lWillBeGraphicMode = nullptr;
17  char const* lFilterPatterns[4] = { "*.txt", "*.text", "*.json", "*csv" };
18  char lBuffer[1024] = {};
19  char lString[1024] = {};
20 
21  std::string title;
22  std::string result;
23 
24  Dialog();
25  virtual ~Dialog() {};
26  void init();
27  virtual std::string run() = 0;
28 };
29 
30 
31 class InputDialog : public Dialog
32 {
33 private:
34  //What's the reason asking for input?
35  std::string description;
36  //What did the user return?
37  std::string userInput;
38 
39 public:
40  InputDialog(std::string _description);
41  std::string run();
42 };
43 
44 
45 class ErrorDialog : public Dialog
46 {
47 private:
48  std::string message;
49 
50 public:
51  ErrorDialog(std::string _message);
52  std::string run();
53 };
54 
55 
56 //Yes/No question dialog
57 class QuestionDialog : public Dialog
58 {
59 private:
60  std::string question;
61  bool bResult = false;
62 
63 public:
64  QuestionDialog(std::string _question);
65  bool getBResult();
66  std::string run();
67 };
68 
69 
70 class FilesystemDialog : public Dialog
71 {
72 public:
73  //from tiny file dialogs
74  FILE* lIn = nullptr;
75  char const* lTheSelectFolderName;
76  char const* lTheSaveFileName;
77  char const* lTheOpenFileName;
78 
79  FilesystemDialog(std::string _startFolder);
80 
81  //my stuff
82  std::string startFolder;
83 };
84 
85 
87 {
88 public:
89  ChooseFolderDialog(std::string _startFolder);
90  std::string run();
91 };
92 
93 
95 {
96 private:
97  std::string data;
98 
99 public:
100  SaveFileDialog(std::string _startFolder, std::string _data);
101  std::string run();
102 };
103 
104 
106 {
107 private:
108  std::string data;
109 
110 public:
111  LoadFileDialog(std::string _startFolder);
112  std::string run();
113  std::string getData() { return data; }
114 };
Definition: Dialog.hpp:6