parent
e1c8dbf6eb
commit
050b1a504e
|
|
@ -25,17 +25,20 @@
|
||||||
namespace kiwano
|
namespace kiwano
|
||||||
{
|
{
|
||||||
Layer::Layer()
|
Layer::Layer()
|
||||||
|
: swallow_(false)
|
||||||
{
|
{
|
||||||
SetSize(Renderer::Instance().GetOutputSize());
|
SetSize(Renderer::Instance().GetOutputSize());
|
||||||
|
|
||||||
AddListener(Event::MouseBtnDown, MakeClosure(this, &Layer::HandleMessages));
|
auto handler = MakeClosure(this, &Layer::HandleMessages);
|
||||||
AddListener(Event::MouseBtnUp, MakeClosure(this, &Layer::HandleMessages));
|
|
||||||
AddListener(Event::MouseMove, MakeClosure(this, &Layer::HandleMessages));
|
|
||||||
AddListener(Event::MouseWheel, MakeClosure(this, &Layer::HandleMessages));
|
|
||||||
|
|
||||||
AddListener(Event::KeyDown, MakeClosure(this, &Layer::HandleMessages));
|
AddListener(Event::MouseBtnDown, handler);
|
||||||
AddListener(Event::KeyUp, MakeClosure(this, &Layer::HandleMessages));
|
AddListener(Event::MouseBtnUp, handler);
|
||||||
AddListener(Event::Char, MakeClosure(this, &Layer::HandleMessages));
|
AddListener(Event::MouseMove, handler);
|
||||||
|
AddListener(Event::MouseWheel, handler);
|
||||||
|
|
||||||
|
AddListener(Event::KeyDown, handler);
|
||||||
|
AddListener(Event::KeyUp, handler);
|
||||||
|
AddListener(Event::Char, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
Layer::~Layer()
|
Layer::~Layer()
|
||||||
|
|
@ -47,12 +50,15 @@ namespace kiwano
|
||||||
if (!IsVisible())
|
if (!IsVisible())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!swallow_)
|
||||||
|
{
|
||||||
NodePtr prev;
|
NodePtr prev;
|
||||||
for (auto child = children_.Last(); child; child = prev)
|
for (auto child = children_.Last(); child; child = prev)
|
||||||
{
|
{
|
||||||
prev = child->PrevItem();
|
prev = child->PrevItem();
|
||||||
child->Dispatch(evt);
|
child->Dispatch(evt);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EventDispatcher::Dispatch(evt);
|
EventDispatcher::Dispatch(evt);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,10 +40,16 @@ namespace kiwano
|
||||||
virtual void OnKeyUp(int key) {}
|
virtual void OnKeyUp(int key) {}
|
||||||
virtual void OnChar(char c) {}
|
virtual void OnChar(char c) {}
|
||||||
|
|
||||||
|
// ÍÌûÏûÏ¢
|
||||||
|
inline void SetSwallowEvents(bool enabled) { swallow_ = enabled; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void Dispatch(Event& evt) override;
|
void Dispatch(Event& evt) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void HandleMessages(Event const& evt);
|
void HandleMessages(Event const& evt);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool swallow_;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ namespace kiwano
|
||||||
ImGuiLayer::ImGuiLayer()
|
ImGuiLayer::ImGuiLayer()
|
||||||
{
|
{
|
||||||
target_window_ = Renderer::Instance().GetTargetWindow();
|
target_window_ = Renderer::Instance().GetTargetWindow();
|
||||||
|
SetSwallowEvents(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiLayer::~ImGuiLayer()
|
ImGuiLayer::~ImGuiLayer()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue