@@ -170,17 +170,48 @@ InventoryState::InventoryState(bool tu, BattlescapeState *parent) : _tu(tu), _pa
170170 _btnOk->onMouseClick ((ActionHandler)&InventoryState::btnOkClick);
171171 _btnOk->onKeyboardPress ((ActionHandler)&InventoryState::btnOkClick, Options::keyCancel);
172172 _btnOk->onKeyboardPress ((ActionHandler)&InventoryState::btnOkClick, Options::keyBattleInventory);
173+ _btnOk->setTooltip (" STR_OK" );
174+ _btnOk->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
175+ _btnOk->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
176+
173177 _btnPrev->onMouseClick ((ActionHandler)&InventoryState::btnPrevClick);
174178 _btnPrev->onKeyboardPress ((ActionHandler)&InventoryState::btnPrevClick, Options::keyBattlePrevUnit);
179+ _btnPrev->setTooltip (" STR_PREVIOUS_UNIT" );
180+ _btnPrev->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
181+ _btnPrev->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
182+
175183 _btnNext->onMouseClick ((ActionHandler)&InventoryState::btnNextClick);
176184 _btnNext->onKeyboardPress ((ActionHandler)&InventoryState::btnNextClick, Options::keyBattleNextUnit);
185+ _btnNext->setTooltip (" STR_NEXT_UNIT" );
186+ _btnNext->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
187+ _btnNext->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
188+
177189 _btnUnload->onMouseClick ((ActionHandler)&InventoryState::btnUnloadClick);
190+ _btnUnload->setTooltip (" STR_UNLOAD_CRAFT" );
191+ _btnUnload->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
192+ _btnUnload->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
193+
178194 _btnGround->onMouseClick ((ActionHandler)&InventoryState::btnGroundClick);
195+ _btnGround->setTooltip (" STR_SCROLL_RIGHT" );
196+ _btnGround->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
197+ _btnGround->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
198+
179199 _btnRank->onMouseClick ((ActionHandler)&InventoryState::btnRankClick);
200+ _btnRank->setTooltip (" STR_UNIT_STATS" );
201+ _btnRank->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
202+ _btnRank->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
203+
180204 _btnCreateTemplate->onMouseClick ((ActionHandler)&InventoryState::btnCreateTemplateClick);
181205 _btnCreateTemplate->onKeyboardPress ((ActionHandler)&InventoryState::btnCreateTemplateClick, Options::keyInvCreateTemplate);
206+ _btnCreateTemplate->setTooltip (" STR_CREATE_INVENTORY_TEMPLATE" );
207+ _btnCreateTemplate->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
208+ _btnCreateTemplate->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
209+
182210 _btnApplyTemplate->onMouseClick ((ActionHandler)&InventoryState::btnApplyTemplateClick);
183211 _btnApplyTemplate->onKeyboardPress ((ActionHandler)&InventoryState::btnApplyTemplateClick, Options::keyInvApplyTemplate);
212+ _btnApplyTemplate->setTooltip (" STR_APPLY_INVENTORY_TEMPLATE" );
213+ _btnApplyTemplate->onMouseIn ((ActionHandler)&InventoryState::txtTooltipIn);
214+ _btnApplyTemplate->onMouseOut ((ActionHandler)&InventoryState::txtTooltipOut);
184215
185216
186217 // only use copy/paste buttons in setup (i.e. non-tu) mode
@@ -202,6 +233,9 @@ InventoryState::InventoryState(bool tu, BattlescapeState *parent) : _tu(tu), _pa
202233 _txtReact->setVisible (Options::showMoreStatsInInventoryView && !_tu);
203234 _txtPSkill->setVisible (Options::showMoreStatsInInventoryView && !_tu);
204235 _txtPStr->setVisible (Options::showMoreStatsInInventoryView && !_tu);
236+
237+
238+ _currentTooltip = " " ;
205239}
206240
207241static void _clearInventoryTemplate (std::vector<EquipmentLayoutItem*> &inventoryTemplate)
@@ -707,7 +741,10 @@ void InventoryState::invMouseOver(Action *)
707741 }
708742 else
709743 {
710- _txtItem->setText (L" " );
744+ if (_currentTooltip == " " )
745+ {
746+ _txtItem->setText (L" " );
747+ }
711748 _txtAmmo->setText (L" " );
712749 _selAmmo->clear ();
713750 _btnCreateTemplate->setVisible (!_tu);
@@ -752,4 +789,32 @@ void InventoryState::handle(Action *action)
752789#endif
753790}
754791
792+ /* *
793+ * Shows a tooltip for the appropriate button.
794+ * @param action Pointer to an action.
795+ */
796+ void InventoryState::txtTooltipIn (Action *action)
797+ {
798+ if (_inv->getSelectedItem () == 0 && Options::battleTooltips)
799+ {
800+ _currentTooltip = action->getSender ()->getTooltip ();
801+ _txtItem->setText (tr (_currentTooltip));
802+ }
803+ }
804+
805+ /* *
806+ * Clears the tooltip text.
807+ * @param action Pointer to an action.
808+ */
809+ void InventoryState::txtTooltipOut (Action *action)
810+ {
811+ if (_inv->getSelectedItem () == 0 && Options::battleTooltips)
812+ {
813+ if (_currentTooltip == action->getSender ()->getTooltip ())
814+ {
815+ _currentTooltip = " " ;
816+ _txtItem->setText (L" " );
817+ }
818+ }
819+ }
755820}
0 commit comments