228
// Draw the item image being dragged by the cursor.
229
const Image *const image = mItemMoved->getImage();
232
const int tPosX = mCursorPosX - (image->mBounds.w / 2);
233
const int tPosY = mCursorPosY - (image->mBounds.h / 2);
234
const std::string str = toString(mItemMoved->getQuantity());
236
g->drawImage(image, tPosX, tPosY);
237
font->drawString(g, str,
238
tPosX + (mBoxWidth - font->getWidth(str)) / 2,
239
tPosY + mBoxHeight - 14);
242
225
BLOCK_END("ItemShortcutContainer::draw")
251
234
if (event.getButton() == gcn::MouseEvent::LEFT)
253
if (!mItemMoved && mItemClicked)
236
if (dragDrop.isEmpty() && mItemClicked)
238
mItemClicked = false;
255
240
const int index = getIndexFromGrid(event.getX(), event.getY());
265
251
if (itemId < SPELL_MIN_ID)
267
253
if (!PlayerInfo::getInventory())
270
Item *const item = PlayerInfo::getInventory()->findItem(
256
const Item *const item = PlayerInfo::getInventory()->findItem(
271
257
itemId, itemColor);
276
261
selShortcut->removeItem(index);
262
dragDrop.dragItem(item, DRAGDROP_SOURCE_SHORTCUTS, index);
279
else if (itemId < SKILL_MIN_ID && spellManager)
269
else if (itemId < SKILL_MIN_ID)
281
277
const TextCommand *const spell = spellManager->getSpellByItem(
284
281
selShortcut->removeItem(index);
282
dragDrop.dragCommand(spell,
283
DRAGDROP_SOURCE_SHORTCUTS, index);
284
dragDrop.setItem(itemId);
288
selShortcut->removeItem(index);
298
const SkillInfo *const skill
299
= skillDialog->getSkillByItem(itemId);
302
selShortcut->removeItem(index);
303
dragDrop.dragSkill(skill,
304
DRAGDROP_SOURCE_SHORTCUTS, index);
305
dragDrop.setItem(itemId);
293
mCursorPosX = event.getX();
294
mCursorPosY = event.getY();
349
366
const int index = getIndexFromGrid(event.getX(), event.getY());
352
mItemMoved = nullptr;
357
selShortcut->setItems(index, mItemMoved->getId(),
358
mItemMoved->getColor());
359
mItemMoved = nullptr;
361
else if (selShortcut->getItem(index) && mItemClicked)
363
selShortcut->useItem(index);
367
mItemClicked = false;
370
if (dragDrop.isEmpty())
372
if (selShortcut->getItem(index) && mItemClicked)
373
selShortcut->useItem(index);
377
if (dragDrop.getSource() == DRAGDROP_SOURCE_SHORTCUTS)
379
const int oldIndex = dragDrop.getTag();
380
selShortcut->setItem(oldIndex, dragDrop.getItem(),
381
dragDrop.getItemColor());
382
selShortcut->swap(oldIndex, index);
386
selShortcut->setItem(index, dragDrop.getItem(),
387
dragDrop.getItemColor());
393
mItemClicked = false;