Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/windowing/StarItemSlotWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/windowing/StarItemSlotWidget.cpp')
-rw-r--r--source/windowing/StarItemSlotWidget.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/windowing/StarItemSlotWidget.cpp b/source/windowing/StarItemSlotWidget.cpp
index 2958957..93d95d3 100644
--- a/source/windowing/StarItemSlotWidget.cpp
+++ b/source/windowing/StarItemSlotWidget.cpp
@@ -67,12 +67,16 @@ void ItemSlotWidget::update(float dt) {
bool ItemSlotWidget::sendEvent(InputEvent const& event) {
if (m_visible) {
if (auto mouseButton = event.ptr<MouseButtonDownEvent>()) {
- if (mouseButton->mouseButton == MouseButton::Left || (m_rightClickCallback && mouseButton->mouseButton == MouseButton::Right)) {
+ if (mouseButton->mouseButton == MouseButton::Left
+ || (m_rightClickCallback && mouseButton->mouseButton == MouseButton::Right)
+ || (m_middleClickCallback && mouseButton->mouseButton == MouseButton::Middle)) {
Vec2I mousePos = *context()->mousePosition(event);
RectI itemArea = m_itemDraggableArea.translated(screenPosition());
if (itemArea.contains(mousePos)) {
if (mouseButton->mouseButton == MouseButton::Right)
m_rightClickCallback(this);
+ else if (mouseButton->mouseButton == MouseButton::Middle)
+ m_middleClickCallback(this);
else
m_callback(this);
return true;
@@ -92,6 +96,10 @@ void ItemSlotWidget::setRightClickCallback(WidgetCallbackFunc callback) {
m_rightClickCallback = callback;
}
+void ItemSlotWidget::setMiddleClickCallback(WidgetCallbackFunc callback) {
+ m_middleClickCallback = callback;
+}
+
void ItemSlotWidget::setItem(ItemPtr const& item) {
m_item = item;
}