Implement mouse event propagation
This commit is contained in:
parent
a0f52411d3
commit
8cc531e283
18 changed files with 135 additions and 60 deletions
|
|
@ -72,6 +72,7 @@ public:
|
|||
bool HasFocus();
|
||||
bool IsEnabled();
|
||||
bool IsVisible();
|
||||
bool IsHidden();
|
||||
|
||||
void SetFocus();
|
||||
void SetEnabled(bool value);
|
||||
|
|
@ -113,11 +114,11 @@ public:
|
|||
protected:
|
||||
virtual void OnPaintFrame(Canvas* canvas) { }
|
||||
virtual void OnPaint(Canvas* canvas) { }
|
||||
virtual bool OnMouseDown(const Point& pos, int key) { return false; }
|
||||
virtual bool OnMouseDoubleclick(const Point& pos, int key) { return false; }
|
||||
virtual bool OnMouseUp(const Point& pos, int key) { return false; }
|
||||
virtual bool OnMouseWheel(const Point& pos, EInputKey key) { return false; }
|
||||
virtual void OnMouseMove(const Point& pos) { }
|
||||
virtual void OnMouseDown(const Point& pos, int key) { }
|
||||
virtual void OnMouseDoubleclick(const Point& pos, int key) { }
|
||||
virtual void OnMouseUp(const Point& pos, int key) { }
|
||||
virtual void OnMouseWheel(const Point& pos, EInputKey key) { }
|
||||
virtual void OnMouseLeave() { }
|
||||
virtual void OnRawMouseMove(int dx, int dy) { }
|
||||
virtual void OnKeyChar(std::string chars) { }
|
||||
|
|
@ -180,6 +181,7 @@ private:
|
|||
Widget* FocusWidget = nullptr;
|
||||
Widget* CaptureWidget = nullptr;
|
||||
Widget* HoverWidget = nullptr;
|
||||
bool HiddenFlag = false;
|
||||
|
||||
StandardCursor CurrentCursor = StandardCursor::arrow;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ public:
|
|||
|
||||
protected:
|
||||
void OnPaint(Canvas* canvas) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseUp(const Point& pos, int key) override;
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseLeave() override;
|
||||
void OnKeyUp(EInputKey key) override;
|
||||
|
||||
|
|
|
|||
|
|
@ -72,9 +72,9 @@ protected:
|
|||
void OnPaintFrame(Canvas* canvas) override;
|
||||
void OnPaint(Canvas* canvas) override;
|
||||
void OnMouseMove(const Point& pos) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseDoubleclick(const Point& pos, int key) override;
|
||||
void OnMouseUp(const Point& pos, int key) override;
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseDoubleclick(const Point& pos, int key) override;
|
||||
bool OnMouseUp(const Point& pos, int key) override;
|
||||
void OnKeyChar(std::string chars) override;
|
||||
void OnKeyDown(EInputKey key) override;
|
||||
void OnKeyUp(EInputKey key) override;
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ public:
|
|||
protected:
|
||||
void OnPaint(Canvas* canvas) override;
|
||||
void OnPaintFrame(Canvas* canvas) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseDoubleclick(const Point& pos, int key) override;
|
||||
void OnMouseWheel(const Point& pos, EInputKey key) override;
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseDoubleclick(const Point& pos, int key) override;
|
||||
bool OnMouseWheel(const Point& pos, EInputKey key) override;
|
||||
void OnKeyDown(EInputKey key) override;
|
||||
void OnGeometryChanged() override;
|
||||
void OnScrollbarScroll();
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ public:
|
|||
protected:
|
||||
void OnPaintFrame(Canvas* canvas) override;
|
||||
void OnPaint(Canvas* canvas) override;
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseMove(const Point& pos) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseLeave() override;
|
||||
void OnKeyDown(EInputKey key) override;
|
||||
void OnKeyUp(EInputKey key) override;
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@ public:
|
|||
std::function<void()> FuncScrollEnd;
|
||||
|
||||
protected:
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseMove(const Point& pos) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseLeave() override;
|
||||
void OnPaint(Canvas* canvas) override;
|
||||
void OnEnableChanged() override;
|
||||
|
|
|
|||
|
|
@ -85,9 +85,9 @@ public:
|
|||
protected:
|
||||
void OnPaintFrame(Canvas* canvas) override;
|
||||
void OnGeometryChanged() override;
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseMove(const Point& pos) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseUp(const Point& pos, int key) override;
|
||||
void OnMouseLeave() override;
|
||||
|
||||
private:
|
||||
|
|
@ -95,7 +95,6 @@ private:
|
|||
|
||||
ImageBox* Icon = nullptr;
|
||||
TextLabel* Label = nullptr;
|
||||
bool mouseDown = false;
|
||||
bool hot = false;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -56,9 +56,9 @@ protected:
|
|||
void OnPaintFrame(Canvas* canvas) override;
|
||||
void OnPaint(Canvas* canvas) override;
|
||||
void OnMouseMove(const Point& pos) override;
|
||||
void OnMouseDown(const Point& pos, int key) override;
|
||||
void OnMouseDoubleclick(const Point& pos, int key) override;
|
||||
void OnMouseUp(const Point& pos, int key) override;
|
||||
bool OnMouseDown(const Point& pos, int key) override;
|
||||
bool OnMouseDoubleclick(const Point& pos, int key) override;
|
||||
bool OnMouseUp(const Point& pos, int key) override;
|
||||
void OnKeyChar(std::string chars) override;
|
||||
void OnKeyDown(EInputKey key) override;
|
||||
void OnKeyUp(EInputKey key) override;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue