Skip to content

Commit 8b47cea

Browse files
committed
improved example app
1 parent 90fb1aa commit 8b47cea

File tree

1 file changed

+58
-60
lines changed

1 file changed

+58
-60
lines changed

examples/simple-wp.cc

+58-60
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,29 @@
88
// Created by Hedzr Yeh on 2021/10/14.
99
//
1010

11-
#include "undo_cxx.hh"
12-
13-
#include <iomanip>
11+
#include <cstddef>
1412
#include <iostream>
15-
#include <math.h>
1613
#include <string>
1714

1815
#include <functional>
1916
#include <memory>
20-
#include <random>
2117

22-
#include <deque>
23-
#include <list>
24-
#include <optional>
25-
#include <queue>
26-
#include <stack>
27-
#include <vector>
18+
#include <string_view>
19+
#include <utility>
20+
21+
#include "undo_cxx/undo-log.hh"
22+
#include "undo_cxx/undo-util.hh"
23+
#include "undo_cxx/undo-zcore.hh"
2824

2925
namespace word_processor {
3026

3127
template<typename State>
3228
class FontStyleCmd : public undo_cxx::cmd_t<State> {
3329
public:
34-
~FontStyleCmd() {}
30+
~FontStyleCmd() override {}
3531
FontStyleCmd() {}
36-
explicit FontStyleCmd(std::string const &default_state_info)
37-
: _info(default_state_info) {}
32+
explicit FontStyleCmd(std::string default_state_info)
33+
: _info(std::move(default_state_info)) {}
3834
UNDO_CXX_DEFINE_DEFAULT_CMD_TYPES(FontStyleCmd, undo_cxx::cmd_t);
3935

4036
protected:
@@ -63,10 +59,10 @@ namespace word_processor {
6359
template<typename State>
6460
class UndoCmd : public undo_cxx::base_undo_cmd_t<State> {
6561
public:
66-
~UndoCmd() {}
62+
~UndoCmd() override {}
6763
using undo_cxx::base_undo_cmd_t<State>::base_undo_cmd_t;
68-
explicit UndoCmd(std::string const &default_state_info)
69-
: _info(default_state_info) {}
64+
explicit UndoCmd(std::string default_state_info)
65+
: _info(std::move(default_state_info)) {}
7066
UNDO_CXX_DEFINE_DEFAULT_CMD_TYPES(UndoCmd, undo_cxx::base_undo_cmd_t);
7167

7268
protected:
@@ -94,10 +90,10 @@ namespace word_processor {
9490
template<typename State>
9591
class RedoCmd : public undo_cxx::base_redo_cmd_t<State> {
9692
public:
97-
~RedoCmd() {}
93+
~RedoCmd() override {}
9894
using undo_cxx::base_redo_cmd_t<State>::base_redo_cmd_t;
99-
explicit RedoCmd(std::string const &default_state_info)
100-
: _info(default_state_info) {}
95+
explicit RedoCmd(std::string default_state_info)
96+
: _info(std::move(default_state_info)) {}
10197
UNDO_CXX_DEFINE_DEFAULT_CMD_TYPES(RedoCmd, undo_cxx::base_redo_cmd_t);
10298

10399
protected:
@@ -162,58 +158,60 @@ namespace word_processor {
162158

163159
} // namespace word_processor
164160

165-
void test_undo_sys() {
166-
using namespace word_processor;
167-
actions_controller controller;
161+
namespace {
162+
static void test_undo_sys() {
163+
using namespace word_processor;
164+
actions_controller controller;
168165

169-
using FontStyleCmd = actions_controller::FontStyleCmdT;
170-
using UndoCmd = actions_controller::UndoCmdT;
171-
using RedoCmd = actions_controller::RedoCmdT;
166+
using FontStyleCmd = actions_controller::FontStyleCmdT;
167+
using UndoCmd = actions_controller::UndoCmdT;
168+
using RedoCmd = actions_controller::RedoCmdT;
172169

173-
// do some stuffs
170+
// do some stuffs
174171

175-
// controller.invoke("word_processor::FontStyleCmd<std::__1::basic_string<char> >", "italic state1");
176-
controller.invoke<FontStyleCmd>("italic state1");
177-
controller.invoke<FontStyleCmd>("italic-bold state2");
178-
controller.invoke<FontStyleCmd>("underline state3");
179-
controller.invoke<FontStyleCmd>("italic state4");
172+
// controller.invoke("word_processor::FontStyleCmd<std::__1::basic_string<char> >", "italic state1");
173+
controller.invoke<FontStyleCmd>("italic state1");
174+
controller.invoke<FontStyleCmd>("italic-bold state2");
175+
controller.invoke<FontStyleCmd>("underline state3");
176+
controller.invoke<FontStyleCmd>("italic state4");
180177

181-
// and try to undo or redo
178+
// and try to undo or redo
182179

183-
controller.invoke<UndoCmd>("undo 1");
184-
controller.invoke<UndoCmd>("undo 2");
180+
controller.invoke<UndoCmd>("undo 1");
181+
controller.invoke<UndoCmd>("undo 2");
185182

186-
controller.invoke<RedoCmd>("redo 1");
183+
controller.invoke<RedoCmd>("redo 1");
187184

188-
controller.invoke<UndoCmd>("undo 3");
189-
controller.invoke<UndoCmd>("undo 4");
185+
controller.invoke<UndoCmd>("undo 3");
186+
controller.invoke<UndoCmd>("undo 4");
190187

191-
controller.invoke("word_processor::RedoCmd", "redo 2 redo");
192-
}
188+
controller.invoke("word_processor::RedoCmd", "redo 2 redo");
189+
}
193190

194-
void test_undo_pre() {
195-
using namespace std::string_view_literals;
196-
std::string_view v1{"v1"};
197-
std::size_t v1_hash = std::hash<std::string_view>{}(v1);
198-
std::cout << v1 << ", hash = "sv << v1_hash << '\n';
199-
using namespace undo_cxx;
200-
using State = std::string;
201-
// using FontStyleCmd = word_processor::FontStyleCmd<State>;
202-
using UndoCmd = word_processor::UndoCmd<State>;
203-
using RedoCmd = word_processor::RedoCmd<State>;
191+
static void test_undo_pre() {
192+
using namespace std::string_view_literals;
193+
std::string_view const v1{"v1"};
194+
std::size_t const v1_hash = std::hash<std::string_view>{}(v1);
195+
std::cout << v1 << ", hash = "sv << v1_hash << '\n';
196+
using namespace undo_cxx;
197+
using State = std::string;
198+
// using FontStyleCmd = word_processor::FontStyleCmd<State>;
199+
using UndoCmd = word_processor::UndoCmd<State>;
200+
using RedoCmd = word_processor::RedoCmd<State>;
204201
#if !defined(_MSC_VER)
205-
std::cout << "id: " << id_gen<UndoCmd>{}(UndoCmd{}) << '\n';
206-
std::cout << "id: " << id_name<UndoCmd>() << '\n';
207-
std::cout << "id: " << id_name<RedoCmd>() << '\n';
202+
std::cout << "id: " << id_gen<UndoCmd>{}(UndoCmd{}) << '\n';
203+
std::cout << "id: " << id_name<UndoCmd>() << '\n';
204+
std::cout << "id: " << id_name<RedoCmd>() << '\n';
208205
#else
209-
std::cout << "detail::type_name: " << debug::detail::type_name<UndoCmd>() << '\n';
210-
std::cout << "type_name : " << debug::type_name<UndoCmd>() << '\n';
211-
std::cout << "id_name : " << id_name<UndoCmd>() << '\n';
212-
std::cout << "id_name : " << id_name<RedoCmd>() << '\n';
206+
std::cout << "detail::type_name: " << debug::detail::type_name<UndoCmd>() << '\n';
207+
std::cout << "type_name : " << debug::type_name<UndoCmd>() << '\n';
208+
std::cout << "id_name : " << id_name<UndoCmd>() << '\n';
209+
std::cout << "id_name : " << id_name<RedoCmd>() << '\n';
213210
#endif
214-
dbg_debug("OK, UndoCmd's id = %s", std::string(id_name<UndoCmd>()).c_str());
215-
dbg_debug("OK, RedoCmd's id = %s", std::string(id_name<RedoCmd>()).c_str());
216-
}
211+
dbg_debug("OK, UndoCmd's id = %s", std::string(id_name<UndoCmd>()).c_str());
212+
dbg_debug("OK, RedoCmd's id = %s", std::string(id_name<RedoCmd>()).c_str());
213+
}
214+
} // namespace
217215

218216
int main() {
219217

0 commit comments

Comments
 (0)