LMMS
Loading...
Searching...
No Matches
juce_MouseEvent.cpp
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
30 Point<float> pos,
31 ModifierKeys modKeys,
32 float force,
33 float o, float r,
34 float tX, float tY,
35 Component* const eventComp,
36 Component* const originator,
37 Time time,
38 Point<float> downPos,
39 Time downTime,
40 const int numClicks,
41 const bool mouseWasDragged) noexcept
42 : position (pos),
43 x (roundToInt (pos.x)),
44 y (roundToInt (pos.y)),
45 mods (modKeys),
46 pressure (force),
47 orientation (o), rotation (r),
48 tiltX (tX), tiltY (tY),
49 mouseDownPosition (downPos),
50 eventComponent (eventComp),
51 originalComponent (originator),
52 eventTime (time),
53 mouseDownTime (downTime),
54 source (inputSource),
55 numberOfClicks ((uint8) numClicks),
56 wasMovedSinceMouseDown ((uint8) (mouseWasDragged ? 1 : 0))
57{
58}
59
60//==============================================================================
61MouseEvent MouseEvent::getEventRelativeTo (Component* const otherComponent) const noexcept
62{
63 jassert (otherComponent != nullptr);
64
65 return MouseEvent (source, otherComponent->getLocalPoint (eventComponent, position),
67 otherComponent, originalComponent, eventTime,
68 otherComponent->getLocalPoint (eventComponent, mouseDownPosition),
70}
71
78
85
86//==============================================================================
91
96
98{
99 if (mouseDownTime.toMilliseconds() > 0)
100 return jmax (0, (int) (eventTime - mouseDownTime).inMilliseconds());
101
102 return 0;
103}
104
105//==============================================================================
107Point<int> MouseEvent::getScreenPosition() const { return eventComponent->localPointToGlobal (getPosition()); }
108
110Point<int> MouseEvent::getMouseDownScreenPosition() const { return eventComponent->localPointToGlobal (mouseDownPosition).roundToInt(); }
111
114
117
120
121int MouseEvent::getScreenX() const { return getScreenPosition().x; }
122int MouseEvent::getScreenY() const { return getScreenPosition().y; }
123
126
127bool MouseEvent::isPressureValid() const noexcept { return pressure > 0.0f && pressure < 1.0f; }
128bool MouseEvent::isOrientationValid() const noexcept { return orientation >= 0.0f && orientation <= MathConstants<float>::twoPi; }
129bool MouseEvent::isRotationValid() const noexcept { return rotation >= 0 && rotation <= MathConstants<float>::twoPi; }
130bool MouseEvent::isTiltValid (bool isX) const noexcept { return isX ? (tiltX >= -1.0f && tiltX <= 1.0f) : (tiltY >= -1.0f && tiltY <= 1.0f); }
131
132//==============================================================================
133static int doubleClickTimeOutMs = 400;
134
136void MouseEvent::setDoubleClickTimeout (const int newTime) noexcept { doubleClickTimeOutMs = newTime; }
137
138} // namespace juce
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Component.h:36
Definition juce_ModifierKeys.h:41
const float tiltY
Definition juce_MouseEvent.h:152
bool isOrientationValid() const noexcept
Definition juce_MouseEvent.cpp:128
MouseEvent(MouseInputSource source, Point< float > position, ModifierKeys modifiers, float pressure, float orientation, float rotation, float tiltX, float tiltY, Component *eventComponent, Component *originator, Time eventTime, Point< float > mouseDownPos, Time mouseDownTime, int numberOfClicks, bool mouseWasDragged) noexcept
Definition juce_MouseEvent.cpp:29
const Point< float > mouseDownPosition
Definition juce_MouseEvent.h:158
static int getDoubleClickTimeout() noexcept
Definition juce_MouseEvent.cpp:135
const ModifierKeys mods
Definition juce_MouseEvent.h:125
MouseInputSource source
Definition juce_MouseEvent.h:191
Point< int > getOffsetFromDragStart() const noexcept
Definition juce_MouseEvent.cpp:112
int getMouseDownScreenX() const
Definition juce_MouseEvent.cpp:124
Point< int > getScreenPosition() const
Definition juce_MouseEvent.cpp:107
const Time mouseDownTime
Definition juce_MouseEvent.h:188
int getMouseDownX() const noexcept
Definition juce_MouseEvent.cpp:115
static void setDoubleClickTimeout(int timeOutMilliseconds) noexcept
Definition juce_MouseEvent.cpp:136
Component *const originalComponent
Definition juce_MouseEvent.h:182
Point< int > getPosition() const noexcept
Definition juce_MouseEvent.cpp:106
Point< int > getMouseDownPosition() const noexcept
Definition juce_MouseEvent.cpp:109
MouseEvent getEventRelativeTo(Component *newComponent) const noexcept
Definition juce_MouseEvent.cpp:61
bool isRotationValid() const noexcept
Definition juce_MouseEvent.cpp:129
const float orientation
Definition juce_MouseEvent.h:137
const int x
Definition juce_MouseEvent.h:106
const float pressure
Definition juce_MouseEvent.h:132
const Point< float > position
Definition juce_MouseEvent.h:97
bool mouseWasDraggedSinceMouseDown() const noexcept
Definition juce_MouseEvent.cpp:87
bool isPressureValid() const noexcept
Definition juce_MouseEvent.cpp:127
int getMouseDownScreenY() const
Definition juce_MouseEvent.cpp:125
const int y
Definition juce_MouseEvent.h:115
const uint8 wasMovedSinceMouseDown
Definition juce_MouseEvent.h:379
const float rotation
Definition juce_MouseEvent.h:142
const Time eventTime
Definition juce_MouseEvent.h:185
Component *const eventComponent
Definition juce_MouseEvent.h:173
int getLengthOfMousePress() const noexcept
Definition juce_MouseEvent.cpp:97
Point< int > getMouseDownScreenPosition() const
Definition juce_MouseEvent.cpp:110
const uint8 numberOfClicks
Definition juce_MouseEvent.h:379
const float tiltX
Definition juce_MouseEvent.h:147
MouseEvent withNewPosition(Point< float > newPosition) const noexcept
Definition juce_MouseEvent.cpp:72
int getScreenY() const
Definition juce_MouseEvent.cpp:122
int getDistanceFromDragStart() const noexcept
Definition juce_MouseEvent.cpp:113
int getScreenX() const
Definition juce_MouseEvent.cpp:121
bool isTiltValid(bool tiltX) const noexcept
Definition juce_MouseEvent.cpp:130
int getDistanceFromDragStartY() const noexcept
Definition juce_MouseEvent.cpp:119
int getMouseDownY() const noexcept
Definition juce_MouseEvent.cpp:116
bool mouseWasClicked() const noexcept
Definition juce_MouseEvent.cpp:92
int getDistanceFromDragStartX() const noexcept
Definition juce_MouseEvent.cpp:118
Definition juce_MouseInputSource.h:52
Definition juce_Point.h:42
Definition juce_Time.h:37
int y
Definition inflate.c:1588
unsigned x[BMAX+1]
Definition inflate.c:1586
#define jassert(expression)
Definition carla_juce.cpp:31
static int doubleClickTimeOutMs
Definition juce_MouseEvent.cpp:133
unsigned char uint8
Definition juce_MathsFunctions.h:37
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
int r
Definition crypt.c:458
#define const
Definition zconf.h:137