Match ui::MouseButton values to os::Event::MouseButton

This commit is contained in:
David Capello 2020-03-27 15:40:43 -03:00
parent 2c42f8670a
commit 09ea577a08
25 changed files with 115 additions and 138 deletions

View File

@ -42,7 +42,7 @@ protected:
void onExecute(Context* context) override;
// SelectBoxDelegate impl
void onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::MouseButtons buttons) override;
void onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::MouseButton button) override;
void onQuickboxCancel(Editor* editor) override;
std::string onGetContextBarHelp() override {
@ -101,7 +101,7 @@ void NewBrushCommand::onExecute(Context* context)
}
}
void NewBrushCommand::onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::MouseButtons buttons)
void NewBrushCommand::onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::MouseButton button)
{
Mask mask;
mask.replace(rect);
@ -109,7 +109,7 @@ void NewBrushCommand::onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::M
selectPencilTool();
// If the right-button was used, we clear the selected area.
if (buttons & ui::kButtonRight) {
if (button == ui::kButtonRight) {
try {
ContextWriter writer(UIContext::instance());
if (writer.cel()) {

View File

@ -145,7 +145,7 @@ ColorBar::ColorBar(int align, TooltipManager* tooltipManager)
, m_fromBgButton(false)
, m_lastDocument(nullptr)
, m_ascending(true)
, m_lastButtons(kButtonLeft)
, m_lastButton(kButtonLeft)
, m_editMode(false)
, m_redrawTimer(250, this)
, m_redrawAll(false)
@ -585,7 +585,7 @@ void ColorBar::onRemapButtonClick()
}
}
void ColorBar::onPaletteViewIndexChange(int index, ui::MouseButtons buttons)
void ColorBar::onPaletteViewIndexChange(int index, ui::MouseButton button)
{
COLOR_BAR_TRACE("ColorBar::onPaletteViewIndexChange(%d)\n", index);
@ -593,11 +593,11 @@ void ColorBar::onPaletteViewIndexChange(int index, ui::MouseButtons buttons)
app::Color color = app::Color::fromIndex(index);
if ((buttons & kButtonRight) == kButtonRight)
if (button == kButtonRight)
setBgColor(color);
else if ((buttons & kButtonLeft) == kButtonLeft)
else if (button == kButtonLeft)
setFgColor(color);
else if ((buttons & kButtonMiddle) == kButtonMiddle)
else if (button == kButtonMiddle)
setTransparentIndex(index);
ChangeSelection();
@ -837,17 +837,17 @@ void ColorBar::onColorButtonChange(const app::Color& color)
m_wheel->selectColor(color);
}
void ColorBar::onPickSpectrum(const app::Color& color, ui::MouseButtons buttons)
void ColorBar::onPickSpectrum(const app::Color& color, ui::MouseButton button)
{
if (buttons == kButtonNone)
buttons = m_lastButtons;
if (button == kButtonNone)
button = m_lastButton;
if ((buttons & kButtonRight) == kButtonRight)
if (button == kButtonRight)
setBgColor(color);
else if ((buttons & kButtonLeft) == kButtonLeft)
else if (button == kButtonLeft)
setFgColor(color);
m_lastButtons = buttons;
m_lastButton = button;
}
void ColorBar::onReverseColors()

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -116,7 +116,7 @@ namespace app {
void onFgColorButtonChange(const app::Color& color);
void onBgColorButtonChange(const app::Color& color);
void onColorButtonChange(const app::Color& color);
void onPickSpectrum(const app::Color& color, ui::MouseButtons buttons);
void onPickSpectrum(const app::Color& color, ui::MouseButton button);
void onReverseColors();
void onSortBy(doc::SortPaletteBy channel);
void onGradient();
@ -125,7 +125,7 @@ namespace app {
void setAscending(bool ascending);
// PaletteViewDelegate impl
void onPaletteViewIndexChange(int index, ui::MouseButtons buttons) override;
void onPaletteViewIndexChange(int index, ui::MouseButton button) override;
void onPaletteViewModification(const doc::Palette* newPalette, PaletteViewModification mod) override;
void onPaletteViewChangeSize(int boxsize) override;
void onPaletteViewPasteColors(const Palette* fromPal, const doc::PalettePicks& from, const doc::PalettePicks& to) override;
@ -193,7 +193,7 @@ namespace app {
obs::scoped_connection m_bgConn;
obs::scoped_connection m_sepConn;
obs::scoped_connection m_appPalChangeConn;
ui::MouseButtons m_lastButtons;
ui::MouseButton m_lastButton;
// True if we the editing mode is on.
bool m_editMode;

View File

@ -1,4 +1,5 @@
// Aseprite
// Copyright (C) 2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -370,7 +371,7 @@ void ColorPopup::onMakeFixed()
}
}
void ColorPopup::onPaletteViewIndexChange(int index, ui::MouseButtons buttons)
void ColorPopup::onPaletteViewIndexChange(int index, ui::MouseButton button)
{
base::ScopedValue<bool> restore(m_insideChange, true,
m_insideChange);

View File

@ -1,4 +1,5 @@
// Aseprite
// Copyright (C) 2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -58,7 +59,7 @@ namespace app {
void onPaletteChange();
// PaletteViewDelegate impl
void onPaletteViewIndexChange(int index, ui::MouseButtons buttons) override;
void onPaletteViewIndexChange(int index, ui::MouseButton button) override;
private:
void selectColorType(app::Color::Type type);

View File

@ -318,7 +318,7 @@ bool ColorSelector::onProcessMessage(ui::Message* msg)
StatusBar::instance()->showColor(0, "", color);
if (hasCapture())
ColorChange(color, mouseMsg->buttons());
ColorChange(color, mouseMsg->button());
}
break;
}

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (c) 2018 Igara Studio S.A.
// Copyright (c) 2018-2020 Igara Studio S.A.
// Copyright (C) 2016-2018 David Capello
//
// This program is distributed under the terms of
@ -14,7 +14,7 @@
#include "obs/connection.h"
#include "obs/signal.h"
#include "os/surface.h"
#include "ui/mouse_buttons.h"
#include "ui/mouse_button.h"
#include "ui/timer.h"
#include "ui/widget.h"
@ -42,7 +42,7 @@ namespace app {
app::Color getColorByPosition(const gfx::Point& pos) override;
// Signals
obs::signal<void(const app::Color&, ui::MouseButtons)> ColorChange;
obs::signal<void(const app::Color&, ui::MouseButton)> ColorChange;
protected:
// paintFlags for onPaintSurfaceInBgThread and return value of

View File

@ -1,4 +1,5 @@
// Aseprite
// Copyright (C) 2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -113,7 +114,7 @@ bool PlayState::onMouseDown(Editor* editor, MouseMessage* msg)
context->setActiveView(editor->getDocView());
// A click with right-button stops the animation
if (msg->buttons() == kButtonRight) {
if (msg->button() == kButtonRight) {
editor->stop();
return true;
}

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -143,7 +143,7 @@ bool SelectBoxState::onMouseDown(Editor* editor, MouseMessage* msg)
if (hasFlag(Flags::QuickBox) && m_movingRulers.empty()) {
m_selectingBox = true;
m_selectingButtons = msg->buttons();
m_selectingButton = msg->button();
setBoxBounds(gfx::Rect(m_startingPos, gfx::Size(1, 1)));
}
@ -162,8 +162,8 @@ bool SelectBoxState::onMouseUp(Editor* editor, MouseMessage* msg)
m_selectingBox = false;
if (m_delegate) {
if (m_selectingButtons == msg->buttons())
m_delegate->onQuickboxEnd(editor, getBoxBounds(), msg->buttons());
if (m_selectingButton == msg->button())
m_delegate->onQuickboxEnd(editor, getBoxBounds(), msg->button());
else
m_delegate->onQuickboxCancel(editor);
}

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -14,7 +14,7 @@
#include "app/ui/editor/standby_state.h"
#include "gfx/fwd.h"
#include "ui/cursor_type.h"
#include "ui/mouse_buttons.h"
#include "ui/mouse_button.h"
#include <string>
#include <vector>
@ -32,7 +32,7 @@ namespace app {
// Called only in QUICKBOX mode, when the user released the mouse
// button.
virtual void onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::MouseButtons buttons) { }
virtual void onQuickboxEnd(Editor* editor, const gfx::Rect& rect, ui::MouseButton button) { }
virtual void onQuickboxCancel(Editor* editor) { }
// Help text to be shown in the ContextBar
@ -136,7 +136,7 @@ namespace app {
int m_rulersDragAlign; // Used to calculate the correct mouse cursor
std::vector<int> m_movingRulers;
bool m_selectingBox;
ui::MouseButtons m_selectingButtons;
ui::MouseButton m_selectingButton;
gfx::Point m_startingPos;
Flags m_flags;
};

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -24,6 +24,7 @@
#include "app/util/clipboard.h"
#include "app/util/pal_ops.h"
#include "base/bind.h"
#include "base/clamp.h"
#include "base/convert_to.h"
#include "doc/image.h"
#include "doc/palette.h"
@ -342,14 +343,14 @@ bool PaletteView::onProcessMessage(Message* msg)
if (m_state == State::SELECTING_COLOR &&
m_hot.part == Hit::COLOR) {
int idx = m_hot.color;
idx = MID(0, idx, currentPalette()->size()-1);
idx = base::clamp(idx, 0, currentPalette()->size()-1);
MouseButtons buttons = mouseMsg->buttons();
const MouseButton button = mouseMsg->button();
if (hasCapture() && ((idx != m_currentEntry) ||
(msg->type() == kMouseDownMessage) ||
((buttons & kButtonMiddle) == kButtonMiddle))) {
if ((buttons & kButtonMiddle) == 0) {
(button == kButtonMiddle))) {
if (button != kButtonMiddle) {
if (!msg->ctrlPressed() && !msg->shiftPressed())
deselect();
@ -363,7 +364,7 @@ bool PaletteView::onProcessMessage(Message* msg)
// Emit signal
if (m_delegate)
m_delegate->onPaletteViewIndexChange(idx, buttons);
m_delegate->onPaletteViewIndexChange(idx, button);
}
}

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -16,7 +16,7 @@
#include "obs/connection.h"
#include "obs/signal.h"
#include "ui/event.h"
#include "ui/mouse_buttons.h"
#include "ui/mouse_button.h"
#include "ui/widget.h"
#include <vector>
@ -36,7 +36,7 @@ namespace app {
class PaletteViewDelegate {
public:
virtual ~PaletteViewDelegate() { }
virtual void onPaletteViewIndexChange(int index, ui::MouseButtons buttons) { }
virtual void onPaletteViewIndexChange(int index, ui::MouseButton button) { }
virtual void onPaletteViewModification(const doc::Palette* newPalette, PaletteViewModification mod) { }
virtual void onPaletteViewChangeSize(int boxsize) { }
virtual void onPaletteViewPasteColors(

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -10,7 +10,6 @@
#pragma once
#include "ui/animated_widget.h"
#include "ui/mouse_buttons.h"
#include "ui/timer.h"
#include "ui/widget.h"

View File

@ -228,7 +228,7 @@ bool ToolBar::onProcessMessage(Message* msg)
MouseMessage* mouseMsg2 = new MouseMessage(
kMouseDownMessage,
mouseMsg->pointerType(),
mouseMsg->buttons(),
mouseMsg->button(),
mouseMsg->modifiers(),
mouseMsg->position());
mouseMsg2->setRecipient(strip);
@ -660,7 +660,7 @@ bool ToolBar::ToolStrip::onProcessMessage(Message* msg)
MouseMessage* mouseMsg2 = new MouseMessage(
kMouseDownMessage,
mouseMsg->pointerType(),
mouseMsg->buttons(),
mouseMsg->button(),
mouseMsg->modifiers(),
mouseMsg->position());
mouseMsg2->setRecipient(bar);

View File

@ -1,4 +1,4 @@
Copyright (C) 2018-2019 Igara Studio S.A.
Copyright (C) 2018-2020 Igara Studio S.A.
Copyright (c) 2001-2018 David Capello
Permission is hereby granted, free of charge, to any person obtaining

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2017 David Capello
//
// This file is released under the terms of the MIT license.
@ -511,7 +511,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
MouseMessage mouseMsg2(kMouseDownMessage,
mouseMsg->pointerType(),
mouseMsg->buttons(),
mouseMsg->button(),
mouseMsg->modifiers(),
mouseMsg->position());
pick->sendMessage(&mouseMsg2);

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2017 David Capello
//
// This file is released under the terms of the MIT license.
@ -96,7 +96,7 @@ bool IntEntry::onProcessMessage(Message* msg)
MouseMessage mouseMsg2(kMouseDownMessage,
mouseMsg->pointerType(),
mouseMsg->buttons(),
mouseMsg->button(),
mouseMsg->modifiers(),
mouseMsg->position());
m_slider.sendMessage(&mouseMsg2);

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -165,7 +165,7 @@ Manager::Manager()
, m_display(NULL)
, m_eventQueue(NULL)
, m_lockedWindow(NULL)
, m_mouseButtons(kButtonNone)
, m_mouseButton(kButtonNone)
{
#ifdef DEBUG_UI_THREADS
ASSERT(!manager_thread);
@ -322,22 +322,22 @@ void Manager::generateSetCursorMessage(const gfx::Point& mousePos,
kSetCursorMessage, dst,
mousePos,
pointerType,
_internal_get_mouse_buttons(),
m_mouseButton,
modifiers));
else
set_mouse_cursor(kArrowCursor);
}
static MouseButtons mouse_buttons_from_os_to_ui(const os::Event& osEvent)
static MouseButton mouse_button_from_os_to_ui(const os::Event& osEvent)
{
switch (osEvent.button()) {
case os::Event::LeftButton: return kButtonLeft; break;
case os::Event::RightButton: return kButtonRight; break;
case os::Event::MiddleButton: return kButtonMiddle; break;
case os::Event::X1Button: return kButtonX1; break;
case os::Event::X2Button: return kButtonX2; break;
default: return kButtonNone;
}
static_assert((int)os::Event::NoneButton == (int)ui::kButtonNone &&
(int)os::Event::LeftButton == (int)ui::kButtonLeft &&
(int)os::Event::RightButton == (int)ui::kButtonRight &&
(int)os::Event::MiddleButton == (int)ui::kButtonMiddle &&
(int)os::Event::X1Button == (int)ui::kButtonX1 &&
(int)os::Event::X2Button == (int)ui::kButtonX2,
"Mouse button constants do not match");
return (MouseButton)osEvent.button();
}
void Manager::generateMessagesFromOSEvents()
@ -442,7 +442,6 @@ void Manager::generateMessagesFromOSEvents()
_internal_set_mouse_position(osEvent.position());
handleMouseMove(
osEvent.position(),
m_mouseButtons,
osEvent.modifiers(),
osEvent.pointerType());
lastMouseMoveEvent = osEvent;
@ -450,43 +449,35 @@ void Manager::generateMessagesFromOSEvents()
}
case os::Event::MouseDown: {
MouseButtons pressedButton = mouse_buttons_from_os_to_ui(osEvent);
m_mouseButtons = (MouseButtons)((int)m_mouseButtons | (int)pressedButton);
_internal_set_mouse_buttons(m_mouseButtons);
handleMouseDown(
osEvent.position(),
pressedButton,
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
osEvent.modifiers(),
osEvent.pointerType());
break;
}
case os::Event::MouseUp: {
MouseButtons releasedButton = mouse_buttons_from_os_to_ui(osEvent);
m_mouseButtons = (MouseButtons)((int)m_mouseButtons & ~(int)releasedButton);
_internal_set_mouse_buttons(m_mouseButtons);
handleMouseUp(
osEvent.position(),
releasedButton,
mouse_button_from_os_to_ui(osEvent),
osEvent.modifiers(),
osEvent.pointerType());
m_mouseButton = kButtonNone;
break;
}
case os::Event::MouseDoubleClick: {
MouseButtons clickedButton = mouse_buttons_from_os_to_ui(osEvent);
handleMouseDoubleClick(
osEvent.position(),
clickedButton,
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
osEvent.modifiers(),
osEvent.pointerType());
break;
}
case os::Event::MouseWheel: {
handleMouseWheel(osEvent.position(), m_mouseButtons,
handleMouseWheel(osEvent.position(),
osEvent.modifiers(),
osEvent.pointerType(),
osEvent.wheelDelta(),
@ -522,7 +513,6 @@ void Manager::generateMessagesFromOSEvents()
}
void Manager::handleMouseMove(const gfx::Point& mousePos,
MouseButtons mouseButtons,
KeyModifiers modifiers,
PointerType pointerType)
{
@ -558,12 +548,12 @@ void Manager::handleMouseMove(const gfx::Point& mousePos,
kMouseMoveMessage, dst,
mousePos,
pointerType,
mouseButtons,
m_mouseButton,
modifiers));
}
void Manager::handleMouseDown(const gfx::Point& mousePos,
MouseButtons mouseButtons,
MouseButton mouseButton,
KeyModifiers modifiers,
PointerType pointerType)
{
@ -575,12 +565,12 @@ void Manager::handleMouseDown(const gfx::Point& mousePos,
(capture_widget ? capture_widget: mouse_widget),
mousePos,
pointerType,
mouseButtons,
mouseButton,
modifiers));
}
void Manager::handleMouseUp(const gfx::Point& mousePos,
MouseButtons mouseButtons,
MouseButton mouseButton,
KeyModifiers modifiers,
PointerType pointerType)
{
@ -590,12 +580,12 @@ void Manager::handleMouseUp(const gfx::Point& mousePos,
(capture_widget ? capture_widget: mouse_widget),
mousePos,
pointerType,
mouseButtons,
mouseButton,
modifiers));
}
void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
MouseButtons mouseButtons,
MouseButton mouseButton,
KeyModifiers modifiers,
PointerType pointerType)
{
@ -605,12 +595,11 @@ void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
newMouseMessage(
kDoubleClickMessage,
dst, mousePos, pointerType,
mouseButtons, modifiers));
mouseButton, modifiers));
}
}
void Manager::handleMouseWheel(const gfx::Point& mousePos,
MouseButtons mouseButtons,
KeyModifiers modifiers,
PointerType pointerType,
const gfx::Point& wheelDelta,
@ -619,7 +608,7 @@ void Manager::handleMouseWheel(const gfx::Point& mousePos,
enqueueMessage(newMouseMessage(
kMouseWheelMessage,
(capture_widget ? capture_widget: mouse_widget),
mousePos, pointerType, mouseButtons, modifiers,
mousePos, pointerType, m_mouseButton, modifiers,
wheelDelta, preciseWheel));
}
@ -851,7 +840,7 @@ void Manager::setMouse(Widget* widget)
kMouseEnterMessage, NULL,
get_mouse_position(),
PointerType::Unknown,
_internal_get_mouse_buttons(),
m_mouseButton,
kKeyUninitializedModifier);
msg->setRecipient(widget);
@ -1690,7 +1679,7 @@ Message* Manager::newMouseMessage(
Widget* widget,
const gfx::Point& mousePos,
PointerType pointerType,
MouseButtons buttons,
MouseButton button,
KeyModifiers modifiers,
const gfx::Point& wheelDelta,
bool preciseWheel)
@ -1702,14 +1691,14 @@ Message* Manager::newMouseMessage(
widget->isEnabled() &&
widget->hasFlags(CTRL_RIGHT_CLICK) &&
(modifiers & kKeyCtrlModifier) &&
(buttons == kButtonLeft)) {
(button == kButtonLeft)) {
modifiers = KeyModifiers(int(modifiers) & ~int(kKeyCtrlModifier));
buttons = kButtonRight;
button = kButtonRight;
}
#endif
Message* msg = new MouseMessage(
type, pointerType, buttons, modifiers, mousePos,
type, pointerType, button, modifiers, mousePos,
wheelDelta, preciseWheel);
if (widget)

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2018 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2017 David Capello
//
// This file is released under the terms of the MIT license.
@ -12,7 +12,7 @@
#include "gfx/region.h"
#include "ui/keys.h"
#include "ui/message_type.h"
#include "ui/mouse_buttons.h"
#include "ui/mouse_button.h"
#include "ui/pointer_type.h"
#include "ui/widget.h"
@ -121,23 +121,21 @@ namespace ui {
PointerType pointerType);
void generateMessagesFromOSEvents();
void handleMouseMove(const gfx::Point& mousePos,
MouseButtons mouseButtons,
KeyModifiers modifiers,
PointerType pointerType);
void handleMouseDown(const gfx::Point& mousePos,
MouseButtons mouseButtons,
MouseButton mouseButton,
KeyModifiers modifiers,
PointerType pointerType);
void handleMouseUp(const gfx::Point& mousePos,
MouseButtons mouseButtons,
MouseButton mouseButton,
KeyModifiers modifiers,
PointerType pointerType);
void handleMouseDoubleClick(const gfx::Point& mousePos,
MouseButtons mouseButtons,
MouseButton mouseButton,
KeyModifiers modifiers,
PointerType pointerType);
void handleMouseWheel(const gfx::Point& mousePos,
MouseButtons mouseButtons,
KeyModifiers modifiers,
PointerType pointerType,
const gfx::Point& wheelDelta,
@ -157,7 +155,7 @@ namespace ui {
MessageType type,
Widget* widget, const gfx::Point& mousePos,
PointerType pointerType,
MouseButtons buttons,
MouseButton button,
KeyModifiers modifiers,
const gfx::Point& wheelDelta = gfx::Point(0, 0),
bool preciseWheel = false);
@ -175,8 +173,8 @@ namespace ui {
// restack a window if the user clicks on it.
Widget* m_lockedWindow;
// Current pressed buttons.
MouseButtons m_mouseButtons;
// Last pressed mouse button.
MouseButton m_mouseButton;
};
} // namespace ui

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -15,7 +15,7 @@
#include "ui/base.h"
#include "ui/keys.h"
#include "ui/message_type.h"
#include "ui/mouse_buttons.h"
#include "ui/mouse_button.h"
#include "ui/pointer_type.h"
namespace ui {
@ -116,24 +116,24 @@ namespace ui {
public:
MouseMessage(MessageType type,
PointerType pointerType,
MouseButtons buttons,
MouseButton button,
KeyModifiers modifiers,
const gfx::Point& pos,
const gfx::Point& wheelDelta = gfx::Point(0, 0),
bool preciseWheel = false)
: Message(type, modifiers),
m_pointerType(pointerType),
m_buttons(buttons),
m_button(button),
m_pos(pos),
m_wheelDelta(wheelDelta),
m_preciseWheel(preciseWheel) {
}
PointerType pointerType() const { return m_pointerType; }
MouseButtons buttons() const { return m_buttons; }
bool left() const { return (m_buttons & kButtonLeft) == kButtonLeft; }
bool right() const { return (m_buttons & kButtonRight) == kButtonRight; }
bool middle() const { return (m_buttons & kButtonMiddle) == kButtonMiddle; }
MouseButton button() const { return m_button; }
bool left() const { return (m_button == kButtonLeft); }
bool right() const { return (m_button == kButtonRight); }
bool middle() const { return (m_button == kButtonMiddle); }
gfx::Point wheelDelta() const { return m_wheelDelta; }
bool preciseWheel() const { return m_preciseWheel; }
@ -141,7 +141,7 @@ namespace ui {
private:
PointerType m_pointerType;
MouseButtons m_buttons; // Pressed buttons
MouseButton m_button; // Pressed button
gfx::Point m_pos; // Mouse position
gfx::Point m_wheelDelta; // Wheel axis variation
bool m_preciseWheel;

View File

@ -1,22 +1,23 @@
// Aseprite UI Library
// Copyright (C) 2020 Igara Studio S.A.
// Copyright (C) 2001-2017 David Capello
//
// This file is released under the terms of the MIT license.
// Read LICENSE.txt for more information.
#ifndef UI_MOUSE_BUTTONS_H_INCLUDED
#define UI_MOUSE_BUTTONS_H_INCLUDED
#ifndef UI_MOUSE_BUTTON_H_INCLUDED
#define UI_MOUSE_BUTTON_H_INCLUDED
#pragma once
namespace ui {
enum MouseButtons {
enum MouseButton { // Matches the values of os::Event::MouseButton
kButtonNone = 0,
kButtonLeft = 1,
kButtonRight = 2,
kButtonMiddle = 4,
kButtonX1 = 8,
kButtonX2 = 16,
kButtonMiddle = 3,
kButtonX1 = 4,
kButtonX2 = 5,
};
} // namespace ui

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -47,7 +47,6 @@ static bool support_native_custom_cursor = false;
// Mouse information (button and position).
static volatile MouseButtons m_buttons;
static gfx::Point m_mouse_pos;
static int mouse_cursor_scale = 1;
@ -326,16 +325,6 @@ void _internal_set_mouse_position(const gfx::Point& newPos)
m_mouse_pos = newPos;
}
void _internal_set_mouse_buttons(MouseButtons buttons)
{
m_buttons = buttons;
}
MouseButtons _internal_get_mouse_buttons()
{
return m_buttons;
}
const gfx::Point& get_mouse_position()
{
return m_mouse_pos;

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -12,7 +12,6 @@
#include "gfx/fwd.h"
#include "ui/base.h"
#include "ui/cursor_type.h"
#include "ui/mouse_buttons.h"
#include <functional>
#include <string>
@ -65,8 +64,6 @@ namespace ui {
void _internal_set_mouse_display(os::Display* display);
void _internal_no_mouse_position();
void _internal_set_mouse_position(const gfx::Point& newPos);
void _internal_set_mouse_buttons(MouseButtons buttons);
MouseButtons _internal_get_mouse_buttons();
const gfx::Point& get_mouse_position();
void set_mouse_position(const gfx::Point& newPos);

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -40,7 +40,7 @@
#include "ui/message.h"
#include "ui/message_loop.h"
#include "ui/message_type.h"
#include "ui/mouse_buttons.h"
#include "ui/mouse_button.h"
#include "ui/overlay.h"
#include "ui/overlay_manager.h"
#include "ui/paint_event.h"

View File

@ -1,5 +1,5 @@
// Aseprite UI Library
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -1319,7 +1319,7 @@ bool Widget::offerCapture(ui::MouseMessage* mouseMsg, int widget_type)
MouseMessage* mouseMsg2 = new MouseMessage(
kMouseDownMessage,
mouseMsg->pointerType(),
mouseMsg->buttons(),
mouseMsg->button(),
mouseMsg->modifiers(),
mouseMsg->position());
mouseMsg2->setRecipient(pick);
@ -1406,7 +1406,7 @@ bool Widget::onProcessMessage(Message* msg)
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
MouseMessage mouseMsg2(kMouseDownMessage,
mouseMsg->pointerType(),
mouseMsg->buttons(),
mouseMsg->button(),
mouseMsg->modifiers(),
mouseMsg->position(),
mouseMsg->wheelDelta());