void SpellShortcutContainer::mouseDragged(MouseEvent &event) { if (event.getButton() == MouseButton::LEFT) { if (dragDrop.isEmpty() && mSpellClicked) { mSpellClicked = false; const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; const int itemId = getItemByIndex(index); if (itemId < 0) return; event.consume(); TextCommand *const spell = spellManager->getSpell(itemId); if (spell != nullptr) { dragDrop.dragCommand(spell, DragDropSource::Spells, index); dragDrop.setItem(spell->getId() + SPELL_MIN_ID); } else { dragDrop.clear(); mSpellClicked = false; } } } }
void EmoteShortcutContainer::mouseReleased(gcn::MouseEvent &event) { if (event.getButton() == gcn::MouseEvent::LEFT) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (emoteShortcut->isEmoteSelected()) emoteShortcut->setEmoteSelected(0); if (index == -1) { mEmoteMoved = 0; return; } if (mEmoteMoved) { emoteShortcut->setEmotes(index, mEmoteMoved); mEmoteMoved = 0; } else if (emoteShortcut->getEmote(index) && mEmoteClicked) { emoteShortcut->useEmote(index + 1); } if (mEmoteClicked) mEmoteClicked = false; } }
void ItemShortcutContainer::mousePressed(gcn::MouseEvent &event) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; if (event.getButton() == gcn::MouseEvent::LEFT) { // Stores the selected item if theirs one. if (itemShortcut->isItemSelected() && inventoryWindow->isVisible()) { itemShortcut->setItem(index); itemShortcut->setItemSelected(-1); } else if (itemShortcut->getItem(index)) mItemClicked = true; } else if (event.getButton() == gcn::MouseEvent::RIGHT) { Item *item = player_node->getInventory()-> findItem(itemShortcut->getItem(index)); if (!item) return; // Convert relative to the window coordinates to absolute screen // coordinates. viewport->showPopup(viewport->getMouseX(), viewport->getMouseY(), item); } }
void ItemShortcutContainer::mouseDragged(gcn::MouseEvent &event) { if (event.getButton() == gcn::MouseEvent::LEFT) { if (!mItemMoved && mItemClicked) { const int index = getIndexFromGrid(event.getX(), event.getY()); const int itemId = itemShortcut->getItem(index); if (index == -1 || itemId < 0) return; Item *item = player_node->getInventory()->findItem(itemId); if (item) { mItemMoved = item; itemShortcut->removeItem(index); } } if (mItemMoved) { mCursorPosX = event.getX(); mCursorPosY = event.getY(); } } }
void OutfitWindow::mousePressed(MouseEvent &event) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (event.getButton() == MouseButton::RIGHT && popupMenu) { popupMenu->showOutfitsWindowPopup(viewport->mMouseX, viewport->mMouseY); event.consume(); return; } else if (index == -1) { Window::mousePressed(event); return; } mMoved = false; event.consume(); if (mItems[mCurrentOutfit][index] > 0) { mItemClicked = true; } else { if (dragDrop.isSelected()) { mItems[mCurrentOutfit][index] = dragDrop.getSelected(); mItemColors[mCurrentOutfit][index] = dragDrop.getSelectedColor(); dragDrop.deselect(); save(); } } Window::mousePressed(event); }
void OutfitWindow::mouseReleased(MouseEvent &event) { if (event.getButton() == MouseButton::LEFT) { if (mCurrentOutfit < 0 || mCurrentOutfit >= static_cast<signed int>(OUTFITS_COUNT)) { return; } const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { dragDrop.clear(); Window::mouseReleased(event); return; } mMoved = false; event.consume(); if (!dragDrop.isEmpty()) { if (dragDrop.isSourceItemContainer()) { mItems[mCurrentOutfit][index] = dragDrop.getItem(); mItemColors[mCurrentOutfit][index] = dragDrop.getItemColor(); dragDrop.clear(); dragDrop.deselect(); save(); } } if (mItemClicked) mItemClicked = false; } Window::mouseReleased(event); }
void ItemShortcutContainer::mouseReleased(gcn::MouseEvent &event) { if (event.getButton() == gcn::MouseEvent::LEFT) { if (itemShortcut->isItemSelected()) itemShortcut->setItemSelected(-1); const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { mItemMoved = NULL; return; } if (mItemMoved) { itemShortcut->setItems(index, mItemMoved->getId()); mItemMoved = NULL; } else if (itemShortcut->getItem(index) && mItemClicked) { itemShortcut->useItem(index); } if (mItemClicked) mItemClicked = false; } }
void OutfitWindow::mouseDragged(gcn::MouseEvent &event) { Window::mouseDragged(event); if (event.getButton() == gcn::MouseEvent::LEFT) { if (!mItemMoved && mItemClicked) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; const int itemId = mItems[mCurrentOutfit][index]; if (itemId < 0) return; Item *item = PlayerInfo::getInventory()->findItem(itemId); if (item) { mItemMoved = item; mItems[mCurrentOutfit][index] = -1; } } if (mItemMoved) { mCursorPosX = event.getX(); mCursorPosY = event.getY(); } } }
void EmoteShortcutContainer::mouseDragged(gcn::MouseEvent &event) { if (event.getButton() == gcn::MouseEvent::LEFT) { if (!mEmoteMoved && mEmoteClicked) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; const int emoteId = emoteShortcut->getEmote(index); if (emoteId) { mEmoteMoved = emoteId; emoteShortcut->removeEmote(index); } } if (mEmoteMoved) { mCursorPosX = event.getX(); mCursorPosY = event.getY(); } } }
// Show ItemTooltip void SpellShortcutContainer::mouseMoved(MouseEvent &event) { if (spellPopup == nullptr || spellShortcut == nullptr || spellManager == nullptr) { return; } const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; const int itemId = getItemByIndex(index); spellPopup->setVisible(Visible_false); const TextCommand *const spell = spellManager->getSpell(itemId); if ((spell != nullptr) && !spell->isEmpty()) { spellPopup->setItem(spell); spellPopup->view(viewport->mMouseX, viewport->mMouseY); } else { spellPopup->setVisible(Visible_false); } }
void SpellShortcutContainer::mousePressed(MouseEvent &event) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; const MouseButtonT eventButton = event.getButton(); if (eventButton == MouseButton::LEFT) { const int itemId = getItemByIndex(index); if (itemId > 0) mSpellClicked = true; event.consume(); } else if (eventButton == MouseButton::MIDDLE) { if ((spellShortcut == nullptr) || (spellManager == nullptr)) return; event.consume(); const int itemId = getItemByIndex(index); spellManager->invoke(itemId); } }
void OutfitWindow::mousePressed(gcn::MouseEvent &event) { Window::mousePressed(event); const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { return; } // Stores the selected item if there is one. if (isItemSelected()) { mItems[mCurrentOutfit][index] = mItemSelected; mItemSelected = -1; } else if (mItems[mCurrentOutfit][index]) { mItemClicked = true; } }
void EmoteShortcutContainer::mousePressed(gcn::MouseEvent &event) { const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; // Stores the selected emote if there is one. if (emoteShortcut->isEmoteSelected()) { emoteShortcut->setEmote(index); emoteShortcut->setEmoteSelected(0); } else if (emoteShortcut->getEmote(index)) { mEmoteClicked = true; } }
void EmoteShortcutContainer::mouseMoved(gcn::MouseEvent &event) { if (!emoteShortcut || !mEmotePopup) return; const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; mEmotePopup->setVisible(false); if (static_cast<unsigned>(index) < mEmoteImg.size() && mEmoteImg[index]) { mEmotePopup->show(viewport->getMouseX(), viewport->getMouseY(), mEmoteImg[index]->name); } }
void EmoteShortcutContainer::mouseMoved(MouseEvent &event) { if (!emoteShortcut || !textPopup) return; const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; textPopup->setVisible(Visible_false); if (static_cast<size_t>(index) < mEmoteImg.size() && mEmoteImg[index]) { const EmoteSprite *const sprite = mEmoteImg[index]; textPopup->show(viewport->mMouseX, viewport->mMouseY, strprintf("%s, %d", sprite->name.c_str(), sprite->id)); } }
void OutfitWindow::mouseDragged(MouseEvent &event) { if (event.getButton() == MouseButton::LEFT) { if (dragDrop.isEmpty() && mItemClicked) { if (mCurrentOutfit < 0 || mCurrentOutfit >= static_cast<signed int>(OUTFITS_COUNT)) { Window::mouseDragged(event); return; } const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { Window::mouseDragged(event); return; } const int itemId = mItems[mCurrentOutfit][index]; const unsigned char itemColor = mItemColors[mCurrentOutfit][index]; if (itemId < 0) { Window::mouseDragged(event); return; } mMoved = false; event.consume(); const Inventory *const inv = PlayerInfo::getInventory(); if (inv) { Item *const item = inv->findItem(itemId, itemColor); if (item) dragDrop.dragItem(item, DRAGDROP_SOURCE_OUTFIT); else dragDrop.clear(); mItems[mCurrentOutfit][index] = -1; } } } Window::mouseDragged(event); }
// Show ItemTooltip void ItemShortcutContainer::mouseMoved(gcn::MouseEvent &event) { const int index = getIndexFromGrid(event.getX(), event.getY()); const int itemId = itemShortcut->getItem(index); if (index == -1 || itemId < 0) return; Item *item = player_node->getInventory()->findItem(itemId); if (item) { mItemPopup->setItem(item->getInfo()); mItemPopup->view(viewport->getMouseX(), viewport->getMouseY()); } else { mItemPopup->setVisible(false); } }
// Show ItemTooltip void SpellShortcutContainer::mouseMoved(MouseEvent &event) { if (!mSpellPopup || !spellShortcut || !spellManager) return; const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) return; const int itemId = getItemByIndex(index); mSpellPopup->setVisible(false); const TextCommand *const spell = spellManager->getSpell(itemId); if (spell && !spell->isEmpty()) { mSpellPopup->setItem(spell); mSpellPopup->view(viewport->getMouseX(), viewport->getMouseY()); } else { mSpellPopup->setVisible(false); } }
void OutfitWindow::mouseReleased(gcn::MouseEvent &event) { Window::mouseReleased(event); if (event.getButton() == gcn::MouseEvent::LEFT) { if (isItemSelected()) { mItemSelected = -1; } const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { mItemMoved = NULL; return; } if (mItemMoved) { mItems[mCurrentOutfit][index] = mItemMoved->getId(); mItemMoved = NULL; } if (mItemClicked) { mItemClicked = false; } } }
void SpellShortcutContainer::mouseReleased(MouseEvent &event) { if (!spellShortcut || !spellManager) return; const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { dragDrop.clear(); return; } const int itemId = getItemByIndex(index); const unsigned int eventButton = event.getButton(); if (eventButton == MouseButton::LEFT) { mSpellClicked = false; if (itemId < 0) return; const int selectedId = spellShortcut->getSelectedItem(); event.consume(); if (!dragDrop.isEmpty()) { if (dragDrop.getSource() == DRAGDROP_SOURCE_SPELLS) { const int oldIndex = dragDrop.getTag(); const int idx = mNumber * SPELL_SHORTCUT_ITEMS; spellManager->swap(idx + index, idx + oldIndex); spellManager->save(); dragDrop.clear(); dragDrop.deselect(); } } else { if (selectedId != itemId) { const TextCommand *const spell = spellManager->getSpell(itemId); if (spell && !spell->isEmpty()) { const int num = itemShortcutWindow->getTabIndex(); if (num >= 0 && num < static_cast<int>(SHORTCUT_TABS) && itemShortcut[num]) { itemShortcut[num]->setItemSelected( spell->getId() + SPELL_MIN_ID); } spellShortcut->setItemSelected(spell->getId()); } } else { const int num = itemShortcutWindow->getTabIndex(); if (num >= 0 && num < static_cast<int>(SHORTCUT_TABS) && itemShortcut[num]) { itemShortcut[num]->setItemSelected(-1); } spellShortcut->setItemSelected(-1); } } } else if (eventButton == MouseButton::RIGHT) { TextCommand *spell = nullptr; if (itemId >= 0) spell = spellManager->getSpell(itemId); if (spell && popupManager) popupManager->showSpellPopup(spell); } }
void SpellShortcutContainer::mouseReleased(MouseEvent &event) { if ((spellShortcut == nullptr) || (spellManager == nullptr)) return; const int index = getIndexFromGrid(event.getX(), event.getY()); if (index == -1) { dragDrop.clear(); return; } const int itemId = getItemByIndex(index); const MouseButtonT eventButton = event.getButton(); if (eventButton == MouseButton::LEFT) { mSpellClicked = false; if (itemId < 0) return; const int selectedId = spellShortcut->getSelectedItem(); event.consume(); if (!dragDrop.isEmpty()) { if (dragDrop.getSource() == DragDropSource::Spells) { const int oldIndex = dragDrop.getTag(); const int idx = mNumber * SPELL_SHORTCUT_ITEMS; spellManager->swap(idx + index, idx + oldIndex); spellManager->save(); dragDrop.clear(); dragDrop.deselect(); } } else { if (selectedId != itemId) { const TextCommand *const spell = spellManager->getSpell(itemId); if ((spell != nullptr) && !spell->isEmpty()) { const int num = itemShortcutWindow->getTabIndex(); if (num >= 0 && num < CAST_S32(SHORTCUT_TABS) && (itemShortcut[num] != nullptr)) { itemShortcut[num]->setItemSelected( spell->getId() + SPELL_MIN_ID); } spellShortcut->setItemSelected(spell->getId()); } } else { const int num = itemShortcutWindow->getTabIndex(); if (num >= 0 && num < CAST_S32(SHORTCUT_TABS) && (itemShortcut[num] != nullptr)) { itemShortcut[num]->setItemSelected(-1); } spellShortcut->setItemSelected(-1); } } } else if (eventButton == MouseButton::RIGHT) { TextCommand *spell = nullptr; if (itemId >= 0) spell = spellManager->getSpell(itemId); if ((spell != nullptr) && (popupMenu != nullptr)) { popupMenu->showSpellPopup(viewport->mMouseX, viewport->mMouseY, spell); } } }