Skip to content

Commit e96d46b

Browse files
committed
remove test function
1 parent a4f7a8a commit e96d46b

File tree

2 files changed

+62
-35
lines changed

2 files changed

+62
-35
lines changed

src/base/util/eventdispatcher.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,6 @@ class EventDispatcher
6969

7070
bool destroyEvent(const event_ptr &event);
7171

72-
void registerOnEachEvent(const std::uint64_t &id,
73-
const handler_fn &handler) const
74-
{
75-
for (const auto &event : eventRegistry)
76-
event->attach(id, handler);
77-
}
78-
7972
protected:
8073
struct EventPtrComp
8174
{

test/unit/chart/events.cpp

Lines changed: 62 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -123,36 +123,70 @@ std::multimap<std::string, event_as, std::less<>> get_events(
123123

124124
std::multimap<std::string, event_as, std::less<>> events;
125125

126+
static std::vector<std::string> eventNames = []
127+
{
128+
std::vector<std::string> names;
129+
Refl::visit<Vizzu::Events::DrawEvents>(
130+
[&names]<class T>(
131+
Util::EventDispatcher::event_ptr &(*)(const T &),
132+
const std::initializer_list<std::string_view> &sv =
133+
{})
134+
{
135+
std::span s{sv};
136+
if (s.back() == "begin" || s.back() == "complete") {
137+
return names.emplace_back(
138+
"draw-" + std::string{s.back()});
139+
}
140+
141+
if (s.back() == "base") s = {s.begin(), s.end() - 1};
142+
143+
std::string name;
144+
for (auto name_part : s) {
145+
name += name_part;
146+
name += '-';
147+
}
148+
name += "draw";
149+
return names.emplace_back(name);
150+
});
151+
return names;
152+
}();
153+
126154
auto line =
127155
chart.getOptions().geometry == Vizzu::Gen::ShapeType::line;
128-
chart.getEventDispatcher().registerOnEachEvent(0,
129-
[&events, &line](Util::EventDispatcher::Params &params)
130-
{
131-
auto marker = params.eventName == "plot-marker-draw";
132-
if ((marker && line)
133-
|| params.eventName == "plot-axis-draw") {
134-
events.emplace(std::piecewise_construct,
135-
std::tuple{params.eventName},
136-
std::tuple{params.toJSON(),
137-
params.target,
138-
static_cast<Vizzu::Events::OnLineDrawEvent &>(
139-
params)
140-
.line});
141-
}
142-
else if (marker) {
143-
events.emplace(std::piecewise_construct,
144-
std::tuple{params.eventName},
145-
std::tuple{params.toJSON(),
146-
params.target,
147-
static_cast<Vizzu::Events::OnRectDrawEvent &>(
148-
params)
149-
.rect});
150-
}
151-
else
152-
events.emplace(std::piecewise_construct,
153-
std::tuple{params.eventName},
154-
std::tuple{params.toJSON(), params.target});
155-
});
156+
auto event_handler = [&events, &line](
157+
Util::EventDispatcher::Params &params)
158+
{
159+
auto marker = params.eventName == "plot-marker-draw";
160+
if ((marker && line)
161+
|| params.eventName == "plot-axis-draw") {
162+
events.emplace(std::piecewise_construct,
163+
std::tuple{params.eventName},
164+
std::tuple{params.toJSON(),
165+
params.target,
166+
static_cast<Vizzu::Events::OnLineDrawEvent &>(
167+
params)
168+
.line});
169+
}
170+
else if (marker) {
171+
events.emplace(std::piecewise_construct,
172+
std::tuple{params.eventName},
173+
std::tuple{params.toJSON(),
174+
params.target,
175+
static_cast<Vizzu::Events::OnRectDrawEvent &>(
176+
params)
177+
.rect});
178+
}
179+
else
180+
events.emplace(std::piecewise_construct,
181+
std::tuple{params.eventName},
182+
std::tuple{params.toJSON(), params.target});
183+
};
184+
185+
for (const auto &name : eventNames) {
186+
auto n = chart.getEventDispatcher().getEvent(name);
187+
skip->*n != nullptr;
188+
n->attach(0, event_handler);
189+
}
156190

157191
using clock_t = std::chrono::steady_clock;
158192
chart.getAnimControl().update(clock_t::now());

0 commit comments

Comments
 (0)