mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-30 13:20:28 +00:00
Match ui::MouseButton values to os::Event::MouseButton
This commit is contained in:
parent
2c42f8670a
commit
09ea577a08
@ -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()) {
|
||||
|
@ -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()
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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(
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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"
|
||||
|
@ -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());
|
||||
|
Loading…
x
Reference in New Issue
Block a user