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