Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
tools
viewer
ClickHandlerSlide.h
Go to the documentation of this file.
1
/*
2
* Copyright 2022 Google Inc.
3
*
4
* Use of this source code is governed by a BSD-style license that can be
5
* found in the LICENSE file.
6
*/
7
8
#ifndef ClickHandlerSlide_DEFINED
9
#define ClickHandlerSlide_DEFINED
10
11
#include "
tools/SkMetaData.h
"
12
#include "
tools/viewer/Slide.h
"
13
14
#include "
include/core/SkPoint.h
"
15
16
#include <functional>
17
18
/**
19
* Provides a higher level abstraction for click handling than the Slide base class. A Click object
20
* is is used to track the state of the mouse over time.
21
*/
22
class
ClickHandlerSlide
:
public
Slide
{
23
public
:
24
// Click handling
25
class
Click
{
26
public
:
27
Click
() {}
28
Click
(std::function<
bool
(
Click
*)> f) :
fFunc
(
std
::move(f)),
fHasFunc
(
true
) {}
29
virtual
~Click
() =
default
;
30
31
SkPoint
fOrig
= {0, 0};
32
SkPoint
fPrev
= {0, 0};
33
SkPoint
fCurr
= {0, 0};
34
35
skui::InputState
fState
=
skui::InputState::kDown
;
36
skui::ModifierKey
fModifierKeys
=
skui::ModifierKey::kNone
;
37
38
SkMetaData
fMeta
;
39
40
std::function<bool(
Click
*)>
fFunc
;
41
42
bool
fHasFunc
=
false
;
43
};
44
45
bool
onMouse
(
SkScalar
x
,
SkScalar
y
,
46
skui::InputState
clickState,
47
skui::ModifierKey
modifierKeys)
final
;
48
49
protected
:
50
/**
51
* Return a Click object to handle the click. onClick will be called repeatedly with the latest
52
* mouse state tracked on the Click object until it returns false.
53
*/
54
virtual
Click
*
onFindClickHandler
(
SkScalar
x
,
SkScalar
y
,
skui::ModifierKey
modi) = 0;
55
56
/** Override to track clicks. Return true as long as you want to track the pen/mouse. */
57
virtual
bool
onClick
(
Click
*) = 0;
58
59
private
:
60
std::unique_ptr<Click> fClick;
61
};
62
63
#endif
SkMetaData.h
SkPoint.h
Slide.h
ClickHandlerSlide::Click
Definition
ClickHandlerSlide.h:25
ClickHandlerSlide::Click::fState
skui::InputState fState
Definition
ClickHandlerSlide.h:35
ClickHandlerSlide::Click::fMeta
SkMetaData fMeta
Definition
ClickHandlerSlide.h:38
ClickHandlerSlide::Click::fHasFunc
bool fHasFunc
Definition
ClickHandlerSlide.h:42
ClickHandlerSlide::Click::fPrev
SkPoint fPrev
Definition
ClickHandlerSlide.h:32
ClickHandlerSlide::Click::~Click
virtual ~Click()=default
ClickHandlerSlide::Click::fCurr
SkPoint fCurr
Definition
ClickHandlerSlide.h:33
ClickHandlerSlide::Click::fOrig
SkPoint fOrig
Definition
ClickHandlerSlide.h:31
ClickHandlerSlide::Click::fFunc
std::function< bool(Click *)> fFunc
Definition
ClickHandlerSlide.h:40
ClickHandlerSlide::Click::Click
Click(std::function< bool(Click *)> f)
Definition
ClickHandlerSlide.h:28
ClickHandlerSlide::Click::fModifierKeys
skui::ModifierKey fModifierKeys
Definition
ClickHandlerSlide.h:36
ClickHandlerSlide::Click::Click
Click()
Definition
ClickHandlerSlide.h:27
ClickHandlerSlide
Definition
ClickHandlerSlide.h:22
ClickHandlerSlide::onClick
virtual bool onClick(Click *)=0
ClickHandlerSlide::onMouse
bool onMouse(SkScalar x, SkScalar y, skui::InputState clickState, skui::ModifierKey modifierKeys) final
Definition
ClickHandlerSlide.cpp:10
ClickHandlerSlide::onFindClickHandler
virtual Click * onFindClickHandler(SkScalar x, SkScalar y, skui::ModifierKey modi)=0
SkMetaData
Definition
SkMetaData.h:15
Slide
Definition
Slide.h:29
SkScalar
float SkScalar
Definition
extension.cpp:12
y
double y
Definition
mouse-input-test.cc:83
x
double x
Definition
mouse-input-test.cc:82
skui::InputState
InputState
Definition
InputState.h:6
skui::InputState::kDown
@ kDown
skui::ModifierKey
ModifierKey
Definition
ModifierKey.h:9
skui::ModifierKey::kNone
@ kNone
std
Definition
ref_ptr.h:256
SkPoint
Definition
SkPoint_impl.h:163
true
true
Definition
verylargebitmap.cpp:163
Generated on Fri Apr 26 2024 06:18:14 for Flutter Engine by
1.9.8