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()
{
if ((lastFocusedComp != Component::getCurrentlyFocusedComponent()
|| lastClickCounter != Desktop::getMouseButtonClickCounter())
|| lastClickCounter != Desktop::getInstance().getMouseButtonClickCounter())
&& ! Component::isMouseButtonDownAnywhere())
{
lastFocusedComp = Component::getCurrentlyFocusedComponent();
lastClickCounter = Desktop::getMouseButtonClickCounter();
lastClickCounter = Desktop::getInstance().getMouseButtonClickCounter();
getUndoManager().beginNewTransaction();
}


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

@@ -24,7 +24,7 @@
*/
Desktop::Desktop()
: mouseClickCounter (0),
: mouseClickCounter (0), mouseWheelCounter (0),
kioskModeComponent (nullptr),
allowedOrientations (allOrientations)
{
@@ -156,15 +156,11 @@ Point<int> Desktop::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
{


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

@@ -78,7 +78,6 @@ public:
static Point<int> getMousePosition();
/** Makes the mouse pointer jump to a given location.
The co-ordinates are relative to the top-left of the main monitor.
*/
static void setMousePosition (const Point<int>& newPosition);
@@ -92,12 +91,17 @@ public:
*/
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.
@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.
@@ -391,8 +395,9 @@ private:
Point<int> lastFakeMouseMove;
void sendMouseMove();
int mouseClickCounter;
int mouseClickCounter, mouseWheelCounter;
void incrementMouseClickCounter() noexcept;
void incrementMouseWheelCounter() noexcept;
ScopedPointer<Timer> dragRepeater;


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

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


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

@@ -28,6 +28,7 @@ TooltipWindow::TooltipWindow (Component* const parent_,
: Component ("tooltip"),
millisecondsBeforeTipAppears (millisecondsBeforeTipAppears_),
mouseClicks (0),
mouseWheelMoves (0),
lastHideTime (0),
lastComponentUnderMouse (nullptr),
changedCompsSinceShown (true)
@@ -145,9 +146,12 @@ void TooltipWindow::timerCallback()
lastComponentUnderMouse = newComp;
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;
mouseWheelMoves = wheelCount;
const Point<int> mousePos (Desktop::getMousePosition());
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;
Point<int> lastMousePos;
int mouseClicks;
int mouseClicks, mouseWheelMoves;
unsigned int lastCompChangeTime, lastHideTime;
Component* lastComponentUnderMouse;
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();
originalClickCounter = removeOnMouseClick
? Desktop::getMouseButtonClickCounter()
? Desktop::getInstance().getMouseButtonClickCounter()
: std::numeric_limits<int>::max();
earliestTimeToDelete = Time::getCurrentTime() + RelativeTime::milliseconds (minimumTimeToDisplayFor);
@@ -99,7 +99,7 @@ void SplashScreen::paint (Graphics& g)
void SplashScreen::timerCallback()
{
if (Time::getCurrentTime() > earliestTimeToDelete
|| Desktop::getMouseButtonClickCounter() > originalClickCounter)
|| Desktop::getInstance().getMouseButtonClickCounter() != originalClickCounter)
{
delete this;
}


Loading…
Cancel
Save