Add middle click.
This commit is contained in:
parent
7cc7429fa0
commit
7a78f23b4a
@ -15,6 +15,7 @@
|
||||
#include "../Root.h"
|
||||
#include "../FastRandom.h"
|
||||
#include "../BlockArea.h"
|
||||
#include "polarssl/camellia.h"
|
||||
|
||||
|
||||
|
||||
@ -60,12 +61,16 @@ void cSlotArea::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a_ClickA
|
||||
ShiftClicked(a_Player, a_SlotNum, a_ClickedItem);
|
||||
return;
|
||||
}
|
||||
|
||||
case caDblClick:
|
||||
{
|
||||
DblClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
case caMiddleClick:
|
||||
{
|
||||
MiddleClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
@ -226,6 +231,24 @@ void cSlotArea::DblClicked(cPlayer & a_Player, int a_SlotNum)
|
||||
|
||||
|
||||
|
||||
void cSlotArea::MiddleClicked(cPlayer & a_Player, int a_SlotNum)
|
||||
{
|
||||
cItem Slot(*GetSlot(a_SlotNum, a_Player));
|
||||
cItem & DraggingItem = a_Player.GetDraggingItem();
|
||||
|
||||
if (!a_Player.IsGameModeCreative() || Slot.IsEmpty() || !DraggingItem.IsEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
DraggingItem = Slot;
|
||||
DraggingItem.m_ItemCount = DraggingItem.GetMaxStackSize();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cSlotArea::OnPlayerAdded(cPlayer & a_Player)
|
||||
{
|
||||
UNUSED(a_Player);
|
||||
@ -410,6 +433,12 @@ cSlotAreaCrafting::cSlotAreaCrafting(int a_GridSize, cWindow & a_ParentWindow) :
|
||||
|
||||
void cSlotAreaCrafting::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a_ClickAction, const cItem & a_ClickedItem)
|
||||
{
|
||||
if (a_ClickAction == caMiddleClick)
|
||||
{
|
||||
MiddleClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
|
||||
// Override for craft result slot
|
||||
if (a_SlotNum == 0)
|
||||
{
|
||||
@ -423,6 +452,7 @@ void cSlotAreaCrafting::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
super::Clicked(a_Player, a_SlotNum, a_ClickAction, a_ClickedItem);
|
||||
UpdateRecipe(a_Player);
|
||||
}
|
||||
@ -651,15 +681,27 @@ void cSlotAreaAnvil::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a_C
|
||||
return;
|
||||
}
|
||||
|
||||
if (a_ClickAction == caDblClick)
|
||||
switch (a_ClickAction)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((a_ClickAction == caShiftLeftClick) || (a_ClickAction == caShiftRightClick))
|
||||
{
|
||||
ShiftClicked(a_Player, a_SlotNum, a_ClickedItem);
|
||||
return;
|
||||
case caDblClick:
|
||||
{
|
||||
return;
|
||||
}
|
||||
case caShiftLeftClick:
|
||||
case caShiftRightClick:
|
||||
{
|
||||
ShiftClicked(a_Player, a_SlotNum, a_ClickedItem);
|
||||
return;
|
||||
}
|
||||
case caMiddleClick:
|
||||
{
|
||||
MiddleClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
cItem Slot(*GetSlot(a_SlotNum, a_Player));
|
||||
@ -1057,12 +1099,16 @@ void cSlotAreaEnchanting::Clicked(cPlayer & a_Player, int a_SlotNum, eClickActio
|
||||
ShiftClicked(a_Player, a_SlotNum, a_ClickedItem);
|
||||
return;
|
||||
}
|
||||
|
||||
case caDblClick:
|
||||
{
|
||||
DblClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
case caMiddleClick:
|
||||
{
|
||||
MiddleClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
@ -1414,6 +1460,12 @@ void cSlotAreaFurnace::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a
|
||||
return;
|
||||
}
|
||||
|
||||
if (a_ClickAction == caMiddleClick)
|
||||
{
|
||||
MiddleClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
|
||||
cItem & DraggingItem = a_Player.GetDraggingItem();
|
||||
if (!DraggingItem.IsEmpty())
|
||||
{
|
||||
@ -1676,16 +1728,28 @@ void cSlotAreaArmor::Clicked(cPlayer & a_Player, int a_SlotNum, eClickAction a_C
|
||||
return;
|
||||
}
|
||||
|
||||
if ((a_ClickAction == caShiftLeftClick) || (a_ClickAction == caShiftRightClick))
|
||||
switch (a_ClickAction)
|
||||
{
|
||||
ShiftClicked(a_Player, a_SlotNum, a_ClickedItem);
|
||||
return;
|
||||
}
|
||||
|
||||
// Armors haven't a dbl click
|
||||
if (a_ClickAction == caDblClick)
|
||||
{
|
||||
return;
|
||||
case caDblClick:
|
||||
{
|
||||
// Armors haven't a dbl click
|
||||
return;
|
||||
}
|
||||
case caShiftLeftClick:
|
||||
case caShiftRightClick:
|
||||
{
|
||||
ShiftClicked(a_Player, a_SlotNum, a_ClickedItem);
|
||||
return;
|
||||
}
|
||||
case caMiddleClick:
|
||||
{
|
||||
MiddleClicked(a_Player, a_SlotNum);
|
||||
return;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
cItem Slot(*GetSlot(a_SlotNum, a_Player));
|
||||
|
@ -46,10 +46,13 @@ public:
|
||||
|
||||
/// Called from Clicked when the action is a shiftclick (left or right)
|
||||
virtual void ShiftClicked(cPlayer & a_Player, int a_SlotNum, const cItem & a_ClickedItem);
|
||||
|
||||
|
||||
/// Called from Clicked when the action is a caDblClick
|
||||
virtual void DblClicked(cPlayer & a_Player, int a_SlotNum);
|
||||
|
||||
|
||||
/** Called from Clicked when the action is a middleclick */
|
||||
virtual void MiddleClicked(cPlayer & a_Player, int a_SlotNum);
|
||||
|
||||
/// Called when a new player opens the same parent window. The window already tracks the player. CS-locked.
|
||||
virtual void OnPlayerAdded(cPlayer & a_Player);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user