Browse Source

Added a method Desktop::getMouseWheelMoveCounter(), and made the existing getMouseButtonClickCounter() method non-static.

tags/2021-05-28
jules 13 years ago
parent
commit
391e99443e
7 changed files with 29 additions and 23 deletions
  1. +2
    -2
      extras/the jucer/src/model/jucer_JucerDocument.cpp
  2. +5
    -9
      modules/juce_gui_basics/components/juce_Desktop.cpp
  3. +11
    -6
      modules/juce_gui_basics/components/juce_Desktop.h
  4. +2
    -1
      modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp
  5. +6
    -2
      modules/juce_gui_basics/windows/juce_TooltipWindow.cpp
  6. +1
    -1
      modules/juce_gui_basics/windows/juce_TooltipWindow.h
  7. +2
    -2
      modules/juce_gui_extra/misc/juce_SplashScreen.cpp

+ 2
- 2
extras/the jucer/src/model/jucer_JucerDocument.cpp View File

@@ -71,11 +71,11 @@ void JucerDocument::changed()
void JucerDocument::timerCallback() void JucerDocument::timerCallback()
{ {
if ((lastFocusedComp != Component::getCurrentlyFocusedComponent() if ((lastFocusedComp != Component::getCurrentlyFocusedComponent()
|| lastClickCounter != Desktop::getMouseButtonClickCounter())
|| lastClickCounter != Desktop::getInstance().getMouseButtonClickCounter())
&& ! Component::isMouseButtonDownAnywhere()) && ! Component::isMouseButtonDownAnywhere())
{ {
lastFocusedComp = Component::getCurrentlyFocusedComponent(); lastFocusedComp = Component::getCurrentlyFocusedComponent();
lastClickCounter = Desktop::getMouseButtonClickCounter();
lastClickCounter = Desktop::getInstance().getMouseButtonClickCounter();
getUndoManager().beginNewTransaction(); getUndoManager().beginNewTransaction();
} }


+ 5
- 9
modules/juce_gui_basics/components/juce_Desktop.cpp View File

@@ -24,7 +24,7 @@
*/ */
Desktop::Desktop() Desktop::Desktop()
: mouseClickCounter (0),
: mouseClickCounter (0), mouseWheelCounter (0),
kioskModeComponent (nullptr), kioskModeComponent (nullptr),
allowedOrientations (allOrientations) allowedOrientations (allOrientations)
{ {
@@ -156,15 +156,11 @@ Point<int> Desktop::getLastMouseDownPosition()
return getInstance().getMainMouseSource().getLastMouseDownPosition(); return getInstance().getMainMouseSource().getLastMouseDownPosition();
} }
int Desktop::getMouseButtonClickCounter()
{
return getInstance().mouseClickCounter;
}
int Desktop::getMouseButtonClickCounter() const noexcept { return mouseClickCounter; }
int Desktop::getMouseWheelMoveCounter() const noexcept { return mouseWheelCounter; }
void Desktop::incrementMouseClickCounter() noexcept
{
++mouseClickCounter;
}
void Desktop::incrementMouseClickCounter() noexcept { ++mouseClickCounter; }
void Desktop::incrementMouseWheelCounter() noexcept { ++mouseWheelCounter; }
int Desktop::getNumDraggingMouseSources() const noexcept int Desktop::getNumDraggingMouseSources() const noexcept
{ {


+ 11
- 6
modules/juce_gui_basics/components/juce_Desktop.h View File

@@ -78,7 +78,6 @@ public:
static Point<int> getMousePosition(); static Point<int> getMousePosition();
/** Makes the mouse pointer jump to a given location. /** Makes the mouse pointer jump to a given location.
The co-ordinates are relative to the top-left of the main monitor. The co-ordinates are relative to the top-left of the main monitor.
*/ */
static void setMousePosition (const Point<int>& newPosition); static void setMousePosition (const Point<int>& newPosition);
@@ -92,12 +91,17 @@ public:
*/ */
static Point<int> getLastMouseDownPosition(); static Point<int> getLastMouseDownPosition();
/** Returns the number of times the mouse button has been clicked since the
app started.
/** Returns the number of times the mouse button has been clicked since the app started.
Each mouse-down event increments this number by 1. Each mouse-down event increments this number by 1.
@see getMouseWheelMoveCounter
*/
int getMouseButtonClickCounter() const noexcept;
/** Returns the number of times the mouse wheel has been moved since the app started.
Each mouse-wheel event increments this number by 1.
@see getMouseButtonClickCounter
*/ */
static int getMouseButtonClickCounter();
int getMouseWheelMoveCounter() const noexcept;
//============================================================================== //==============================================================================
/** This lets you prevent the screensaver from becoming active. /** This lets you prevent the screensaver from becoming active.
@@ -391,8 +395,9 @@ private:
Point<int> lastFakeMouseMove; Point<int> lastFakeMouseMove;
void sendMouseMove(); void sendMouseMove();
int mouseClickCounter;
int mouseClickCounter, mouseWheelCounter;
void incrementMouseClickCounter() noexcept; void incrementMouseClickCounter() noexcept;
void incrementMouseWheelCounter() noexcept;
ScopedPointer<Timer> dragRepeater; ScopedPointer<Timer> dragRepeater;


+ 2
- 1
modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp View File

@@ -291,8 +291,9 @@ public:
jassert (peer != nullptr); jassert (peer != nullptr);
lastTime = time; lastTime = time;
++mouseEventCounter; ++mouseEventCounter;
const Point<int> screenPos (peer->localToGlobal (positionWithinPeer));
Desktop::getInstance().incrementMouseWheelCounter();
const Point<int> screenPos (peer->localToGlobal (positionWithinPeer));
setPeer (peer, screenPos, time); setPeer (peer, screenPos, time);
setScreenPos (screenPos, time, false); setScreenPos (screenPos, time, false);
triggerFakeMove(); triggerFakeMove();


+ 6
- 2
modules/juce_gui_basics/windows/juce_TooltipWindow.cpp View File

@@ -28,6 +28,7 @@ TooltipWindow::TooltipWindow (Component* const parent_,
: Component ("tooltip"), : Component ("tooltip"),
millisecondsBeforeTipAppears (millisecondsBeforeTipAppears_), millisecondsBeforeTipAppears (millisecondsBeforeTipAppears_),
mouseClicks (0), mouseClicks (0),
mouseWheelMoves (0),
lastHideTime (0), lastHideTime (0),
lastComponentUnderMouse (nullptr), lastComponentUnderMouse (nullptr),
changedCompsSinceShown (true) changedCompsSinceShown (true)
@@ -145,9 +146,12 @@ void TooltipWindow::timerCallback()
lastComponentUnderMouse = newComp; lastComponentUnderMouse = newComp;
lastTipUnderMouse = newTip; lastTipUnderMouse = newTip;
const int clickCount = Desktop::getInstance().getMouseButtonClickCounter();
const bool mouseWasClicked = clickCount > mouseClicks;
Desktop& desktop = Desktop::getInstance();
const int clickCount = desktop.getMouseButtonClickCounter();
const int wheelCount = desktop.getMouseButtonClickCounter();
const bool mouseWasClicked = (clickCount > mouseClicks || wheelCount > mouseWheelMoves);
mouseClicks = clickCount; mouseClicks = clickCount;
mouseWheelMoves = wheelCount;
const Point<int> mousePos (Desktop::getMousePosition()); const Point<int> mousePos (Desktop::getMousePosition());
const bool mouseMovedQuickly = mousePos.getDistanceFrom (lastMousePos) > 12; const bool mouseMovedQuickly = mousePos.getDistanceFrom (lastMousePos) > 12;


+ 1
- 1
modules/juce_gui_basics/windows/juce_TooltipWindow.h View File

@@ -98,7 +98,7 @@ private:
//============================================================================== //==============================================================================
int millisecondsBeforeTipAppears; int millisecondsBeforeTipAppears;
Point<int> lastMousePos; Point<int> lastMousePos;
int mouseClicks;
int mouseClicks, mouseWheelMoves;
unsigned int lastCompChangeTime, lastHideTime; unsigned int lastCompChangeTime, lastHideTime;
Component* lastComponentUnderMouse; Component* lastComponentUnderMouse;
bool changedCompsSinceShown; bool changedCompsSinceShown;


+ 2
- 2
modules/juce_gui_extra/misc/juce_SplashScreen.cpp View File

@@ -78,7 +78,7 @@ void SplashScreen::show (const String& title,
repaint(); repaint();
originalClickCounter = removeOnMouseClick originalClickCounter = removeOnMouseClick
? Desktop::getMouseButtonClickCounter()
? Desktop::getInstance().getMouseButtonClickCounter()
: std::numeric_limits<int>::max(); : std::numeric_limits<int>::max();
earliestTimeToDelete = Time::getCurrentTime() + RelativeTime::milliseconds (minimumTimeToDisplayFor); earliestTimeToDelete = Time::getCurrentTime() + RelativeTime::milliseconds (minimumTimeToDisplayFor);
@@ -99,7 +99,7 @@ void SplashScreen::paint (Graphics& g)
void SplashScreen::timerCallback() void SplashScreen::timerCallback()
{ {
if (Time::getCurrentTime() > earliestTimeToDelete if (Time::getCurrentTime() > earliestTimeToDelete
|| Desktop::getMouseButtonClickCounter() > originalClickCounter)
|| Desktop::getInstance().getMouseButtonClickCounter() != originalClickCounter)
{ {
delete this; delete this;
} }


Loading…
Cancel
Save