ManaPlus
Public Member Functions | Private Attributes
VirtShortcutContainer Class Reference

#include <virtshortcutcontainer.h>

Inheritance diagram for VirtShortcutContainer:
ShortcutContainer Widget WidgetListener MouseListener Widget2

Public Member Functions

 VirtShortcutContainer (Widget2 *const widget, ShortcutBase *const shortcut)
 
 ~VirtShortcutContainer ()
 
void draw (Graphics *const graphics)
 
void safeDraw (Graphics *const graphics)
 
void mouseDragged (MouseEvent &event)
 
void mousePressed (MouseEvent &event)
 
void mouseReleased (MouseEvent &event)
 
void widgetHidden (const Event &event)
 
void mouseExited (MouseEvent &event)
 
void mouseMoved (MouseEvent &event)
 
void setWidget2 (const Widget2 *const widget)
 
- Public Member Functions inherited from ShortcutContainer
 ~ShortcutContainer ()
 
void widgetResized (const Event &event)
 
void widgetMoved (const Event &event)
 
int getMaxItems () const
 
int getBoxWidth () const
 
int getBoxHeight () const
 
void drawBackground (Graphics *const g)
 
void safeDrawBackground (Graphics *const g)
 
- Public Member Functions inherited from Widget
 Widget (const Widget2 *const widget)
 
 ~Widget ()
 
virtual void drawFrame (Graphics *graphics)
 
virtual void safeDrawFrame (Graphics *graphics)
 
void setFrameSize (const unsigned int frameSize)
 
unsigned int getFrameSize () const
 
virtual void logic ()
 
WidgetgetParent () const
 
void setWidth (const int width)
 
int getWidth () const
 
void setHeight (const int height)
 
int getHeight () const
 
void setSize (const int width, const int height)
 
void setX (const int x)
 
int getX () const
 
void setY (const int y)
 
int getY () const
 
void setPosition (const int x, const int y)
 
void setDimension (const Rect &dimension)
 
const RectgetDimension () const
 
void setFocusable (const bool focusable)
 
bool isFocusable () const
 
virtual bool isFocused () const
 
void setEnabled (const bool enabled)
 
bool isEnabled () const
 
void setVisible (Visible visible)
 
bool isVisible () const
 
void setBaseColor (const Color &color)
 
const ColorgetBaseColor () const
 
void setForegroundColor (const Color &color)
 
const ColorgetForegroundColor () const
 
void setBackgroundColor (const Color &color)
 
const ColorgetBackgroundColor () const
 
virtual void requestFocus ()
 
virtual void requestMoveToTop ()
 
virtual void requestMoveToBottom ()
 
virtual void setFocusHandler (FocusHandler *const focusHandler)
 
FocusHandlergetFocusHandler ()
 
void addActionListener (ActionListener *const actionListener)
 
void removeActionListener (ActionListener *const actionListener)
 
void addDeathListener (WidgetDeathListener *const deathListener)
 
void removeDeathListener (WidgetDeathListener *const deathListener)
 
void addMouseListener (MouseListener *const mouseListener)
 
void removeMouseListener (MouseListener *const mouseListener)
 
void addKeyListener (KeyListener *const keyListener)
 
void removeKeyListener (KeyListener *const keyListener)
 
void addFocusListener (FocusListener *const focusListener)
 
void removeFocusListener (FocusListener *const focusListener)
 
void addWidgetListener (WidgetListener *const widgetListener)
 
void removeWidgetListener (WidgetListener *const widgetListener)
 
void setActionEventId (const std::string &actionEventId)
 
const std::string & getActionEventId () const
 
virtual void getAbsolutePosition (int &x, int &y) const
 
virtual void setParent (Widget *parent)
 
FontgetFont () const
 
void setFont (Font *const font)
 
virtual void fontChanged ()
 
bool isTabInEnabled () const
 
void setTabInEnabled (const bool enabled)
 
bool isTabOutEnabled () const
 
void setTabOutEnabled (const bool enabled)
 
void requestModalFocus ()
 
virtual void requestModalMouseInputFocus ()
 
virtual void releaseModalFocus ()
 
virtual void releaseModalMouseInputFocus ()
 
virtual bool isModalFocused () const
 
virtual bool isModalMouseInputFocused () const
 
virtual WidgetgetWidgetAt (int x, int y)
 
const std::list< MouseListener * > & getMouseListeners () const A_CONST
 
const std::list< KeyListener * > & getKeyListeners () const A_CONST
 
const std::list< FocusListener * > & getFocusListeners () const A_CONST
 
virtual Rect getChildrenArea ()
 
virtual FocusHandlergetInternalFocusHandler ()
 
void setInternalFocusHandler (FocusHandler *const internalFocusHandler)
 
virtual void moveToTop (Widget *widget)
 
virtual void moveToBottom (Widget *widget)
 
virtual void focusNext ()
 
virtual void focusPrevious ()
 
virtual void showWidgetPart (Widget *const widget, const Rect &area)
 
void setId (const std::string &id)
 
const std::string & getId () const
 
virtual void showPart (const Rect &rectangle)
 
bool isAllowLogic () const
 
void setMouseConsume (const bool b)
 
bool isMouseConsume () const
 
void setRedraw (const bool b)
 
virtual bool isSelectable () const
 
void setSelectable (const bool selectable)
 
void windowResized ()
 
virtual void postInit ()
 
- Public Member Functions inherited from Widget2
virtual ~Widget2 ()
 
const ColorgetThemeColor (const ThemeColorIdT type, const unsigned int alpha) const A_INLINE
 
const ColorgetThemeCharColor (const signed char c, bool &valid) const A_INLINE
 
void setPalette (int palette)
 
void checkPalette ()
 
void setForegroundColor2 (const Color &color)
 
WidgetgetWindow () const
 
virtual void setWindow (Widget *const window)
 
- Public Member Functions inherited from WidgetListener
virtual ~WidgetListener ()
 
virtual void widgetShown (const Event &event)
 
- Public Member Functions inherited from MouseListener
virtual ~MouseListener ()
 
virtual void mouseEntered (MouseEvent &event)
 
virtual void mouseClicked (MouseEvent &event)
 
virtual void mouseWheelMovedUp (MouseEvent &event)
 
virtual void mouseWheelMovedDown (MouseEvent &event)
 

Private Attributes

bool mItemClicked
 
Color mEquipedColor
 
Color mEquipedColor2
 
Color mUnEquipedColor
 
Color mUnEquipedColor2
 
ShortcutBasemShortcut
 

Additional Inherited Members

- Static Public Member Functions inherited from Widget
static void setGlobalFont (Font *const font)
 
static FontgetGloablFont ()
 
static void cleanGlobalFont ()
 
static bool widgetExists (const Widget *const widget)
 
static void distributeWindowResizeEvent ()
 
static WidgetcallPostInit (Widget *const widget)
 
- Data Fields inherited from Widget
Visible mVisible
 
- Protected Types inherited from Widget
typedef std::list< MouseListener * > MouseListenerList
 
typedef MouseListenerList::iterator MouseListenerIterator
 
typedef std::list< KeyListener * > KeyListenerList
 
typedef KeyListenerList::iterator KeyListenerIterator
 
typedef std::list< ActionListener * > ActionListenerList
 
typedef ActionListenerList::iterator ActionListenerIterator
 
typedef std::list< WidgetDeathListener * > WidgetDeathListenerList
 
typedef WidgetDeathListenerList::iterator WidgetDeathListenerIterator
 
typedef std::list< FocusListener * > FocusListenerList
 
typedef FocusListenerList::iterator FocusListenerIterator
 
typedef std::list< WidgetListener * > WidgetListenerList
 
typedef WidgetListenerList::iterator WidgetListenerIterator
 
- Protected Member Functions inherited from ShortcutContainer
 ShortcutContainer (Widget2 *const widget)
 
int getIndexFromGrid (const int pointX, const int pointY) const
 
- Protected Member Functions inherited from Widget
void distributeActionEvent ()
 
void distributeResizedEvent ()
 
void distributeMovedEvent ()
 
void distributeHiddenEvent ()
 
void distributeShownEvent ()
 
- Protected Member Functions inherited from Widget2
 Widget2 (const Widget2 *const widget)
 
- Protected Member Functions inherited from WidgetListener
 WidgetListener ()
 
- Protected Member Functions inherited from MouseListener
 MouseListener ()
 
- Protected Attributes inherited from ShortcutContainer
ImagemBackgroundImg
 
unsigned mMaxItems
 
int mBoxWidth
 
int mBoxHeight
 
int mGridWidth
 
int mGridHeight
 
ImageCollectionmVertexes
 
- Protected Attributes inherited from Widget
MouseListenerList mMouseListeners
 
KeyListenerList mKeyListeners
 
ActionListenerList mActionListeners
 
WidgetDeathListenerList mDeathListeners
 
FocusListenerList mFocusListeners
 
WidgetListenerList mWidgetListeners
 
Color mForegroundColor
 
Color mBackgroundColor
 
Color mBaseColor
 
Rect mDimension
 
std::string mActionEventId
 
std::string mId
 
FocusHandlermFocusHandler
 
FocusHandlermInternalFocusHandler
 
WidgetmParent
 
FontmCurrentFont
 
unsigned int mFrameSize
 
bool mFocusable
 
bool mTabIn
 
bool mTabOut
 
bool mEnabled
 
bool mAllowLogic
 
bool mMouseConsume
 
bool mRedraw
 
bool mSelectable
 
- Protected Attributes inherited from Widget2
int mPaletteOffset
 
WidgetmWindow
 
Color mForegroundColor2
 
- Static Protected Attributes inherited from ShortcutContainer
static float mAlpha = 1.0
 
- Static Protected Attributes inherited from Widget
static FontmGlobalFont = 0
 

Detailed Description

An item shortcut container. Used to quickly use items.

Definition at line 35 of file virtshortcutcontainer.h.

Constructor & Destructor Documentation

◆ VirtShortcutContainer()

VirtShortcutContainer::VirtShortcutContainer ( Widget2 *const  widget,
ShortcutBase *const  shortcut 
)

Constructor. Initializes the graphic.

Definition at line 45 of file virtshortcutcontainer.cpp.

References ShortcutBase::getItemCount(), ShortcutContainer::mMaxItems, and mShortcut.

46  :
47  ShortcutContainer(widget),
48  mItemClicked(false),
53  255U)),
54  mShortcut(shortcut)
55 {
56  if (mShortcut != nullptr)
58  else
59  mMaxItems = 0;
60 }
ShortcutContainer(Widget2 *const widget)
const Color & getThemeColor(const ThemeColorIdT type, const unsigned int alpha) const A_INLINE
Definition: widget2.h:44
int getItemCount() const
Definition: shortcutbase.h:80

◆ ~VirtShortcutContainer()

VirtShortcutContainer::~VirtShortcutContainer ( )

Destructor.

Definition at line 62 of file virtshortcutcontainer.cpp.

63 {
64 }

Member Function Documentation

◆ draw()

void VirtShortcutContainer::draw ( Graphics *const  graphics)
virtual

Draws the items.

Implements Widget.

Definition at line 76 of file virtshortcutcontainer.cpp.

References BLOCK_END, BLOCK_START, ShortcutContainer::drawBackground(), Graphics::drawImage(), Font::drawString(), Equipped_true, Inventory::findItem(), ServerCommandType::font, Widget::getFont(), Item::getImage(), PlayerInfo::getInventory(), ShortcutBase::getItem(), ShortcutBase::getItemColor(), Item::getQuantity(), Font::getWidth(), Settings::guiAlpha, Item::isEquipped(), ServerCommandType::item, ShortcutContainer::mAlpha, ShortcutContainer::mBackgroundImg, ShortcutContainer::mBoxHeight, ShortcutContainer::mBoxWidth, mEquipedColor, mEquipedColor2, ShortcutContainer::mGridWidth, ShortcutContainer::mMaxItems, mShortcut, mUnEquipedColor, mUnEquipedColor2, Image::setAlpha(), settings, and Catch::toString().

77 {
78  if (mShortcut == nullptr)
79  return;
80 
81  BLOCK_START("VirtShortcutContainer::draw")
82  if (settings.guiAlpha != mAlpha)
83  {
84  mAlpha = settings.guiAlpha;
85  if (mBackgroundImg != nullptr)
86  mBackgroundImg->setAlpha(mAlpha);
87  }
88 
89  drawBackground(graphics);
90 
91  const Inventory *const inv = PlayerInfo::getInventory();
92  if (inv == nullptr)
93  {
94  BLOCK_END("VirtShortcutContainer::draw")
95  return;
96  }
97 
98  Font *const font = getFont();
99 
100  for (unsigned i = 0; i < mMaxItems; i++)
101  {
102  const int itemX = (i % mGridWidth) * mBoxWidth;
103  const int itemY = (i / mGridWidth) * mBoxHeight;
104 
105  if (mShortcut->getItem(i) < 0)
106  continue;
107 
108  const Item *const item = inv->findItem(mShortcut->getItem(i),
109  mShortcut->getItemColor(i));
110 
111  if (item != nullptr)
112  {
113  // Draw item icon.
114  Image *const image = item->getImage();
115 
116  if (image != nullptr)
117  {
118  std::string caption;
119  if (item->getQuantity() > 1)
120  caption = toString(item->getQuantity());
121  else if (item->isEquipped() == Equipped_true)
122  caption = "Eq.";
123 
124  image->setAlpha(1.0F);
125  graphics->drawImage(image, itemX, itemY);
126  if (item->isEquipped() == Equipped_true)
127  {
128  font->drawString(graphics,
131  caption,
132  itemX + (mBoxWidth - font->getWidth(caption)) / 2,
133  itemY + mBoxHeight - 14);
134  }
135  else
136  {
137  font->drawString(graphics,
140  caption,
141  itemX + (mBoxWidth - font->getWidth(caption)) / 2,
142  itemY + mBoxHeight - 14);
143  }
144  }
145  }
146  }
147  BLOCK_END("VirtShortcutContainer::draw")
148 }
Font * getFont() const
Definition: widget.cpp:330
Definition: font.h:88
Item * findItem(const int itemId, const ItemColor color) const
Definition: inventory.cpp:93
Equipped isEquipped() const
Definition: item.h:128
Inventory * getInventory()
Definition: playerinfo.cpp:192
#define BLOCK_START(name)
Definition: perfomance.h:78
if(!vert) return
#define BLOCK_END(name)
Definition: perfomance.h:79
const bool Equipped_true
Definition: equipped.h:29
Settings settings
Definition: settings.cpp:31
virtual void setAlpha(const float alpha)
Definition: image.cpp:285
int getQuantity() const
Definition: item.h:104
Definition: item.h:48
int getItem(const size_t index) const
Definition: shortcutbase.h:71
void drawBackground(Graphics *const g)
std::string toString(T const &value)
converts any type to a string
Definition: catch.hpp:1774
Image * getImage() const
Definition: item.h:86
virtual void drawImage(const Image *const image, int dstX, int dstY)=0
Definition: image.h:61
float guiAlpha
Definition: settings.h:129
ItemColor getItemColor(const size_t index) const
Definition: shortcutbase.h:74

◆ mouseDragged()

void VirtShortcutContainer::mouseDragged ( MouseEvent event)
virtual

Handles mouse when dragged.

Reimplemented from ShortcutContainer.

Definition at line 224 of file virtshortcutcontainer.cpp.

References DragDrop::clear(), dragDrop, DragDrop::dragItem(), DragDropSource::Drop, Inventory::findItem(), MouseEvent::getButton(), ShortcutContainer::getIndexFromGrid(), PlayerInfo::getInventory(), ShortcutBase::getItem(), ShortcutBase::getItemColor(), MouseEvent::getX(), DragDrop::isEmpty(), ServerCommandType::item, MouseButton::LEFT, mItemClicked, mShortcut, and ShortcutBase::removeItem().

225 {
226  if (mShortcut == nullptr)
227  return;
228 
229  if (event.getButton() == MouseButton::LEFT)
230  {
231  if (dragDrop.isEmpty() && mItemClicked)
232  {
233  const int index = getIndexFromGrid(event.getX(), event.getY());
234 
235  if (index == -1)
236  return;
237 
238  const int itemId = mShortcut->getItem(index);
239  const ItemColor itemColor = mShortcut->getItemColor(index);
240 
241  if (itemId < 0)
242  return;
243 
244  const Inventory *const inv = PlayerInfo::getInventory();
245  if (inv == nullptr)
246  return;
247 
248  Item *const item = inv->findItem(itemId, itemColor);
249 
250  if (item != nullptr)
251  {
253  mShortcut->removeItem(index);
254  }
255  else
256  {
257  dragDrop.clear();
258  }
259  }
260  }
261 }
void clear()
Definition: dragdrop.h:182
Item * findItem(const int itemId, const ItemColor color) const
Definition: inventory.cpp:93
MouseButtonT getButton() const
Definition: mouseevent.h:115
Inventory * getInventory()
Definition: playerinfo.cpp:192
DragDrop dragDrop
uint16_t ItemColor
Definition: itemcolor.h:29
bool isEmpty() const
Definition: dragdrop.h:195
void dragItem(const Item *const item, const DragDropSourceT source, const int tag)
Definition: dragdrop.h:86
int getIndexFromGrid(const int pointX, const int pointY) const
void removeItem(const size_t index)
Definition: shortcutbase.h:126
Definition: item.h:48
int getItem(const size_t index) const
Definition: shortcutbase.h:71
int getX() const
Definition: mouseevent.h:126
ItemColor getItemColor(const size_t index) const
Definition: shortcutbase.h:74

◆ mouseExited()

void VirtShortcutContainer::mouseExited ( MouseEvent event)
virtual

Called when the mouse has exited the widget area.

Parameters
eventDescribes the event.

Reimplemented from MouseListener.

Definition at line 375 of file virtshortcutcontainer.cpp.

References itemPopup, Widget::setVisible(), and Visible_false.

376 {
377  if (itemPopup != nullptr)
379 }
void setVisible(Visible visible)
Definition: widget.cpp:224
const bool Visible_false
Definition: visible.h:29
ItemPopup * itemPopup
Definition: itempopup.cpp:63

◆ mouseMoved()

void VirtShortcutContainer::mouseMoved ( MouseEvent event)
virtual

Called when the mouse has moved in the widget area and no mouse button has been pressed (i.e no widget is being dragged).

Parameters
eventDescribes the event.

Reimplemented from MouseListener.

Definition at line 342 of file virtshortcutcontainer.cpp.

References Inventory::findItem(), ShortcutContainer::getIndexFromGrid(), PlayerInfo::getInventory(), ShortcutBase::getItem(), ShortcutBase::getItemColor(), MouseEvent::getX(), ServerCommandType::item, itemPopup, Viewport::mMouseX, Viewport::mMouseY, mShortcut, Popup::position(), ItemPopup::setItem(), Widget::setVisible(), viewport, and Visible_false.

343 {
344  if (mShortcut == nullptr)
345  return;
346 
347  const int index = getIndexFromGrid(event.getX(), event.getY());
348 
349  if (index == -1)
350  return;
351 
352  const int itemId = mShortcut->getItem(index);
353  const ItemColor itemColor = mShortcut->getItemColor(index);
354 
355  if (itemId < 0)
356  return;
357 
358  const Inventory *const inv = PlayerInfo::getInventory();
359  if (inv == nullptr)
360  return;
361 
362  const Item *const item = inv->findItem(itemId, itemColor);
363 
364  if ((item != nullptr) && (viewport != nullptr))
365  {
366  itemPopup->setItem(item, false);
368  }
369  else
370  {
372  }
373 }
Item * findItem(const int itemId, const ItemColor color) const
Definition: inventory.cpp:93
void setVisible(Visible visible)
Definition: widget.cpp:224
Inventory * getInventory()
Definition: playerinfo.cpp:192
uint16_t ItemColor
Definition: itemcolor.h:29
int mMouseX
Definition: viewport.h:153
int getIndexFromGrid(const int pointX, const int pointY) const
const bool Visible_false
Definition: visible.h:29
void position(const int x, const int y)
Definition: popup.cpp:232
Definition: item.h:48
int getItem(const size_t index) const
Definition: shortcutbase.h:71
void setItem(const ItemInfo &item, const ItemColor color, const bool showImage, int id, const int *const cards, const ItemOptionsList *const options)
Definition: itempopup.cpp:188
int mMouseY
Definition: viewport.h:154
int getX() const
Definition: mouseevent.h:126
ItemPopup * itemPopup
Definition: itempopup.cpp:63
ItemColor getItemColor(const size_t index) const
Definition: shortcutbase.h:74
Viewport * viewport
Definition: viewport.cpp:35

◆ mousePressed()

void VirtShortcutContainer::mousePressed ( MouseEvent event)
virtual

Handles mouse when pressed.

Reimplemented from ShortcutContainer.

Definition at line 263 of file virtshortcutcontainer.cpp.

References DragDrop::deselect(), dragDrop, Inventory::findItem(), ShortcutContainer::getIndexFromGrid(), PlayerInfo::getInventory(), ShortcutBase::getItem(), ShortcutBase::getItemColor(), DragDrop::getSelected(), DragDrop::getSelectedColor(), MouseEvent::getX(), inventoryWindow, DragDrop::isSelected(), ServerCommandType::item, MouseButton::LEFT, mItemClicked, Viewport::mMouseX, Viewport::mMouseY, mShortcut, popupMenu, MouseButton::RIGHT, ShortcutBase::setItems(), PopupMenu::showDropPopup(), and viewport.

264 {
265  if ((mShortcut == nullptr) || (inventoryWindow == nullptr))
266  return;
267 
268  const int index = getIndexFromGrid(event.getX(), event.getY());
269 
270  if (index == -1)
271  return;
272 
273  event.consume();
274 
275  const MouseButtonT eventButton = event.getButton();
276  if (eventButton == MouseButton::LEFT)
277  {
278  if (mShortcut->getItem(index) > 0)
279  {
280  mItemClicked = true;
281  }
282  else
283  {
284  if (dragDrop.isSelected())
285  {
288  dragDrop.deselect();
289  }
290  }
291  }
292  else if (eventButton == MouseButton::RIGHT)
293  {
294  const Inventory *const inv = PlayerInfo::getInventory();
295  if (inv == nullptr)
296  return;
297 
298  Item *const item = inv->findItem(mShortcut->getItem(index),
299  mShortcut->getItemColor(index));
300 
301  if (popupMenu != nullptr)
302  {
304  viewport->mMouseY,
305  item);
306  }
307  }
308 }
bool isSelected() const
Definition: dragdrop.h:224
Item * findItem(const int itemId, const ItemColor color) const
Definition: inventory.cpp:93
Inventory * getInventory()
Definition: playerinfo.cpp:192
DragDrop dragDrop
int mMouseX
Definition: viewport.h:153
InventoryWindow * inventoryWindow
void setItems(const size_t index, const int itemId, const ItemColor color)
Definition: shortcutbase.h:102
int getIndexFromGrid(const int pointX, const int pointY) const
void showDropPopup(const int x, const int y, const Item *const item)
Definition: popupmenu.cpp:1848
int getSelected() const
Definition: dragdrop.h:218
PopupMenu * popupMenu
Definition: popupmenu.cpp:102
Definition: item.h:48
void deselect()
Definition: dragdrop.h:212
int getItem(const size_t index) const
Definition: shortcutbase.h:71
int mMouseY
Definition: viewport.h:154
int getX() const
Definition: mouseevent.h:126
MouseButton ::T MouseButtonT
Definition: mousebutton.h:77
ItemColor getSelectedColor() const
Definition: dragdrop.h:221
ItemColor getItemColor(const size_t index) const
Definition: shortcutbase.h:74
Viewport * viewport
Definition: viewport.cpp:35

◆ mouseReleased()

void VirtShortcutContainer::mouseReleased ( MouseEvent event)
virtual

Handles mouse release.

Reimplemented from ShortcutContainer.

Definition at line 310 of file virtshortcutcontainer.cpp.

References DragDrop::clear(), DragDrop::deselect(), dragDrop, MouseEvent::getButton(), ShortcutContainer::getIndexFromGrid(), DragDrop::getItem(), DragDrop::getItemColor(), MouseEvent::getX(), DragDrop::isEmpty(), ShortcutBase::isItemSelected(), DragDrop::isSourceItemContainer(), MouseButton::LEFT, mItemClicked, mShortcut, ShortcutBase::setItems(), and ShortcutBase::setItemSelected().

311 {
312  if (mShortcut == nullptr)
313  return;
314 
315  if (event.getButton() == MouseButton::LEFT)
316  {
317  if (mShortcut->isItemSelected())
319 
320  const int index = getIndexFromGrid(event.getX(), event.getY());
321  if (index == -1)
322  {
323  dragDrop.clear();
324  return;
325  }
326  if (!dragDrop.isEmpty())
327  {
329  {
332  dragDrop.clear();
333  dragDrop.deselect();
334  }
335  }
336 
337  mItemClicked = false;
338  }
339 }
void clear()
Definition: dragdrop.h:182
void setItemSelected(const int itemId)
Definition: shortcutbase.h:112
MouseButtonT getButton() const
Definition: mouseevent.h:115
DragDrop dragDrop
bool isItemSelected() const
Definition: shortcutbase.h:120
bool isEmpty() const
Definition: dragdrop.h:195
void setItems(const size_t index, const int itemId, const ItemColor color)
Definition: shortcutbase.h:102
int getIndexFromGrid(const int pointX, const int pointY) const
bool isSourceItemContainer() const
Definition: dragdrop.h:240
void deselect()
Definition: dragdrop.h:212
ItemColor getItemColor() const
Definition: dragdrop.h:68
int getX() const
Definition: mouseevent.h:126
int getItem() const
Definition: dragdrop.h:65

◆ safeDraw()

void VirtShortcutContainer::safeDraw ( Graphics *const  graphics)
virtual

Implements Widget.

Definition at line 150 of file virtshortcutcontainer.cpp.

References BLOCK_END, BLOCK_START, Graphics::drawImage(), Font::drawString(), Equipped_true, Inventory::findItem(), ServerCommandType::font, Widget::getFont(), Item::getImage(), PlayerInfo::getInventory(), ShortcutBase::getItem(), ShortcutBase::getItemColor(), Item::getQuantity(), Font::getWidth(), Settings::guiAlpha, Item::isEquipped(), ServerCommandType::item, ShortcutContainer::mAlpha, ShortcutContainer::mBackgroundImg, ShortcutContainer::mBoxHeight, ShortcutContainer::mBoxWidth, mEquipedColor, mEquipedColor2, ShortcutContainer::mGridWidth, ShortcutContainer::mMaxItems, mShortcut, mUnEquipedColor, mUnEquipedColor2, ShortcutContainer::safeDrawBackground(), Image::setAlpha(), settings, and Catch::toString().

151 {
152  if (mShortcut == nullptr)
153  return;
154 
155  BLOCK_START("VirtShortcutContainer::safeDraw")
156  if (settings.guiAlpha != mAlpha)
157  {
158  mAlpha = settings.guiAlpha;
159  if (mBackgroundImg != nullptr)
160  mBackgroundImg->setAlpha(mAlpha);
161  }
162 
163  safeDrawBackground(graphics);
164 
165  const Inventory *const inv = PlayerInfo::getInventory();
166  if (inv == nullptr)
167  {
168  BLOCK_END("VirtShortcutContainer::safeDraw")
169  return;
170  }
171 
172  Font *const font = getFont();
173 
174  for (unsigned i = 0; i < mMaxItems; i++)
175  {
176  const int itemX = (i % mGridWidth) * mBoxWidth;
177  const int itemY = (i / mGridWidth) * mBoxHeight;
178 
179  if (mShortcut->getItem(i) < 0)
180  continue;
181 
182  const Item *const item = inv->findItem(mShortcut->getItem(i),
183  mShortcut->getItemColor(i));
184 
185  if (item != nullptr)
186  {
187  // Draw item icon.
188  Image *const image = item->getImage();
189 
190  if (image != nullptr)
191  {
192  std::string caption;
193  if (item->getQuantity() > 1)
194  caption = toString(item->getQuantity());
195  else if (item->isEquipped() == Equipped_true)
196  caption = "Eq.";
197 
198  image->setAlpha(1.0F);
199  graphics->drawImage(image, itemX, itemY);
200  if (item->isEquipped() == Equipped_true)
201  {
202  font->drawString(graphics,
205  caption,
206  itemX + (mBoxWidth - font->getWidth(caption)) / 2,
207  itemY + mBoxHeight - 14);
208  }
209  else
210  {
211  font->drawString(graphics,
214  caption,
215  itemX + (mBoxWidth - font->getWidth(caption)) / 2,
216  itemY + mBoxHeight - 14);
217  }
218  }
219  }
220  }
221  BLOCK_END("VirtShortcutContainer::safeDraw")
222 }
Font * getFont() const
Definition: widget.cpp:330
Definition: font.h:88
Item * findItem(const int itemId, const ItemColor color) const
Definition: inventory.cpp:93
Equipped isEquipped() const
Definition: item.h:128
Inventory * getInventory()
Definition: playerinfo.cpp:192
#define BLOCK_START(name)
Definition: perfomance.h:78
if(!vert) return
#define BLOCK_END(name)
Definition: perfomance.h:79
const bool Equipped_true
Definition: equipped.h:29
Settings settings
Definition: settings.cpp:31
virtual void setAlpha(const float alpha)
Definition: image.cpp:285
int getQuantity() const
Definition: item.h:104
Definition: item.h:48
int getItem(const size_t index) const
Definition: shortcutbase.h:71
std::string toString(T const &value)
converts any type to a string
Definition: catch.hpp:1774
Image * getImage() const
Definition: item.h:86
virtual void drawImage(const Image *const image, int dstX, int dstY)=0
Definition: image.h:61
void safeDrawBackground(Graphics *const g)
float guiAlpha
Definition: settings.h:129
ItemColor getItemColor(const size_t index) const
Definition: shortcutbase.h:74

◆ setWidget2()

void VirtShortcutContainer::setWidget2 ( const Widget2 *const  widget)
virtual

Reimplemented from Widget2.

Definition at line 66 of file virtshortcutcontainer.cpp.

References Widget2::getThemeColor(), ThemeColorId::ITEM_EQUIPPED, ThemeColorId::ITEM_EQUIPPED_OUTLINE, ThemeColorId::ITEM_NOT_EQUIPPED, ThemeColorId::ITEM_NOT_EQUIPPED_OUTLINE, mEquipedColor, mEquipedColor2, mUnEquipedColor, mUnEquipedColor2, and Widget2::setWidget2().

◆ widgetHidden()

void VirtShortcutContainer::widgetHidden ( const Event event)
virtual

Invoked when a widget is hidden, i.e it's set to be not visible.

Parameters
eventDescribes the event.

Reimplemented from WidgetListener.

Definition at line 381 of file virtshortcutcontainer.cpp.

References itemPopup, Widget::setVisible(), and Visible_false.

382 {
383  if (itemPopup != nullptr)
385 }
void setVisible(Visible visible)
Definition: widget.cpp:224
const bool Visible_false
Definition: visible.h:29
ItemPopup * itemPopup
Definition: itempopup.cpp:63

Field Documentation

◆ mEquipedColor

Color VirtShortcutContainer::mEquipedColor
private

Definition at line 84 of file virtshortcutcontainer.h.

Referenced by draw(), safeDraw(), and setWidget2().

◆ mEquipedColor2

Color VirtShortcutContainer::mEquipedColor2
private

Definition at line 85 of file virtshortcutcontainer.h.

Referenced by draw(), safeDraw(), and setWidget2().

◆ mItemClicked

bool VirtShortcutContainer::mItemClicked
private

Definition at line 82 of file virtshortcutcontainer.h.

Referenced by mouseDragged(), mousePressed(), and mouseReleased().

◆ mShortcut

ShortcutBase* VirtShortcutContainer::mShortcut
private

◆ mUnEquipedColor

Color VirtShortcutContainer::mUnEquipedColor
private

Definition at line 86 of file virtshortcutcontainer.h.

Referenced by draw(), safeDraw(), and setWidget2().

◆ mUnEquipedColor2

Color VirtShortcutContainer::mUnEquipedColor2
private

Definition at line 87 of file virtshortcutcontainer.h.

Referenced by draw(), safeDraw(), and setWidget2().


The documentation for this class was generated from the following files: