Skip to content

Commit fa3e759

Browse files
committed
tooltips for inventory
because wtf do all those buttons mean anyway?
1 parent e26ff80 commit fa3e759

5 files changed

Lines changed: 76 additions & 4 deletions

File tree

bin/data/Language/en-GB.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,7 @@ en-GB:
10521052
other: "{N} Units outside Exit Area"
10531053
STR_ABORT_MISSION_QUESTION: "Abort Mission?"
10541054
STR_CORPSE: "Corpse"
1055-
STR_UNLOAD: "Unload"
1055+
STR_UNLOAD_CRAFT: "Unload"
10561056
STR_NEW_BATTLE: "New Battle"
10571057
STR_OPTIONS: "Options"
10581058
STR_RIGHT_CLICK_TO_DELETE: "Right click to delete."
@@ -1359,3 +1359,4 @@ en-GB:
13591359
STR_MAXIMIZE_INFO_SCREENS_DESC: "Inventory and various other screens will be displayed at full screen, regardless of scale settings."
13601360
STR_JAPANESE_FONT: "If you have a Japanese font that works in OpenXCom: please, send it to us and let us know if we can use it."
13611361
STR_NOT_ENOUGH_ITEMS_FOR_TEMPLATE: "Not enough items to copy template!"
1362+
STR_UNLOAD_WEAPON: "Unload weapon"

bin/data/Language/en-US.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,7 @@ en-US:
10521052
other: "{N} Units outside Exit Area"
10531053
STR_ABORT_MISSION_QUESTION: "Abort Mission?"
10541054
STR_CORPSE: "Corpse"
1055-
STR_UNLOAD: "Unload"
1055+
STR_UNLOAD_CRAFT: "Unload"
10561056
STR_NEW_BATTLE: "New Battle"
10571057
STR_OPTIONS: "Options"
10581058
STR_RIGHT_CLICK_TO_DELETE: "Right click to delete."
@@ -1359,3 +1359,4 @@ en-US:
13591359
STR_MAXIMIZE_INFO_SCREENS_DESC: "Inventory and various other screens will be displayed at full screen, regardless of scale settings."
13601360
STR_JAPANESE_FONT: "If you have a Japanese font that works in OpenXCom: please, send it to us and let us know if we can use it."
13611361
STR_NOT_ENOUGH_ITEMS_FOR_TEMPLATE: "Not enough items to copy template!"
1362+
STR_UNLOAD_WEAPON: "Unload weapon"

src/Basescape/CraftEquipmentState.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ CraftEquipmentState::CraftEquipmentState(Base *base, size_t craft) : _sel(0), _c
105105
_btnOk->onKeyboardPress((ActionHandler)&CraftEquipmentState::btnOkClick, Options::keyCancel);
106106

107107
_btnClear->setColor(Palette::blockOffset(15)+1);
108-
_btnClear->setText(tr("STR_UNLOAD"));
108+
_btnClear->setText(tr("STR_UNLOAD_WEAPON"));
109109
_btnClear->onMouseClick((ActionHandler)&CraftEquipmentState::btnClearClick);
110110
_btnClear->setVisible(isNewBattle);
111111

src/Battlescape/InventoryState.cpp

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

207241
static 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
}

src/Battlescape/InventoryState.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class InventoryState : public State
5252
SavedBattleGame *_battleGame;
5353
const bool _tu;
5454
BattlescapeState *_parent;
55+
std::string _currentTooltip;
5556
public:
5657
/// Creates the Inventory state.
5758
InventoryState(bool tu, BattlescapeState *parent);
@@ -87,6 +88,10 @@ class InventoryState : public State
8788
void invMouseOut(Action *action);
8889
/// Handles keypresses.
8990
void handle(Action *action);
91+
/// Handler for showing tooltip.
92+
void txtTooltipIn(Action *action);
93+
/// Handler for hiding tooltip.
94+
void txtTooltipOut(Action *action);
9095
};
9196

9297
}

0 commit comments

Comments
 (0)