forked from teamnwah/openmw-tes3coop
Improved recharge widget
This commit is contained in:
parent
f63b1e81cd
commit
1164c3f16e
3 changed files with 68 additions and 20 deletions
|
@ -33,6 +33,7 @@ namespace MWGui
|
|||
|
||||
Recharge::Recharge()
|
||||
: WindowBase("openmw_recharge_dialog.layout")
|
||||
, mItemSelectionDialog(NULL)
|
||||
{
|
||||
getWidget(mBox, "Box");
|
||||
getWidget(mGemBox, "GemBox");
|
||||
|
@ -45,6 +46,8 @@ Recharge::Recharge()
|
|||
|
||||
mBox->setDisplayMode(ItemChargeView::DisplayMode_EnchantmentCharge);
|
||||
|
||||
mGemIcon->eventMouseButtonClick += MyGUI::newDelegate(this, &Recharge::onSelectItem);
|
||||
|
||||
setVisible(false);
|
||||
}
|
||||
|
||||
|
@ -87,6 +90,12 @@ void Recharge::updateView()
|
|||
mGemBox->setVisible(toolBoxVisible);
|
||||
mGemBox->setUserString("Hidden", toolBoxVisible ? "false" : "true");
|
||||
|
||||
if (!toolBoxVisible)
|
||||
{
|
||||
mGemIcon->setItem(MWWorld::Ptr());
|
||||
mGemIcon->clearUserStrings();
|
||||
}
|
||||
|
||||
mBox->update();
|
||||
|
||||
Gui::Box* box = dynamic_cast<Gui::Box*>(mMainWidget);
|
||||
|
@ -102,6 +111,34 @@ void Recharge::onCancel(MyGUI::Widget *sender)
|
|||
exit();
|
||||
}
|
||||
|
||||
void Recharge::onSelectItem(MyGUI::Widget *sender)
|
||||
{
|
||||
delete mItemSelectionDialog;
|
||||
mItemSelectionDialog = new ItemSelectionDialog("#{sSoulGemsWithSouls}");
|
||||
mItemSelectionDialog->eventItemSelected += MyGUI::newDelegate(this, &Recharge::onItemSelected);
|
||||
mItemSelectionDialog->eventDialogCanceled += MyGUI::newDelegate(this, &Recharge::onItemCancel);
|
||||
mItemSelectionDialog->setVisible(true);
|
||||
mItemSelectionDialog->openContainer(MWMechanics::getPlayer());
|
||||
mItemSelectionDialog->setFilter(SortFilterItemModel::Filter_OnlyChargedSoulstones);
|
||||
}
|
||||
|
||||
void Recharge::onItemSelected(MWWorld::Ptr item)
|
||||
{
|
||||
mItemSelectionDialog->setVisible(false);
|
||||
|
||||
mGemIcon->setItem(item);
|
||||
mGemIcon->setUserString ("ToolTipType", "ItemPtr");
|
||||
mGemIcon->setUserData(item);
|
||||
|
||||
MWBase::Environment::get().getSoundManager()->playSound(item.getClass().getDownSoundId(item), 1, 1);
|
||||
updateView();
|
||||
}
|
||||
|
||||
void Recharge::onItemCancel()
|
||||
{
|
||||
mItemSelectionDialog->setVisible(false);
|
||||
}
|
||||
|
||||
void Recharge::onItemClicked(MyGUI::Widget *sender, const MWWorld::Ptr& item)
|
||||
{
|
||||
MWWorld::Ptr gem = *mGemIcon->getUserData<MWWorld::Ptr>();
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include "windowbase.hpp"
|
||||
|
||||
#include "itemselection.hpp"
|
||||
|
||||
namespace MWWorld
|
||||
{
|
||||
class Ptr;
|
||||
|
@ -11,6 +13,7 @@ namespace MWWorld
|
|||
namespace MWGui
|
||||
{
|
||||
|
||||
class ItemSelectionDialog;
|
||||
class ItemWidget;
|
||||
class ItemChargeView;
|
||||
|
||||
|
@ -32,12 +35,19 @@ protected:
|
|||
|
||||
ItemWidget* mGemIcon;
|
||||
|
||||
ItemSelectionDialog* mItemSelectionDialog;
|
||||
|
||||
MyGUI::TextBox* mChargeLabel;
|
||||
|
||||
MyGUI::Button* mCancelButton;
|
||||
|
||||
void updateView();
|
||||
|
||||
void onSelectItem(MyGUI::Widget* sender);
|
||||
|
||||
void onItemSelected(MWWorld::Ptr item);
|
||||
void onItemCancel();
|
||||
|
||||
void onItemClicked (MyGUI::Widget* sender, const MWWorld::Ptr& item);
|
||||
void onCancel (MyGUI::Widget* sender);
|
||||
void onMouseWheel(MyGUI::Widget* _sender, int _rel);
|
||||
|
|
|
@ -1,22 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<MyGUI type="Layout">
|
||||
<Widget type="VBox" skin="MW_Dialog" layer="Windows" position="0 0 329 253" align="Center" name="_Main">
|
||||
<Widget type="VBox" skin="MW_Dialog" layer="Windows" position="0 0 330 385" align="Center" name="_Main">
|
||||
<Property key="Padding" value="12"/>
|
||||
<Property key="Spacing" value="8"/>
|
||||
|
||||
<Widget type="HBox" name="GemBox">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
|
||||
<Widget type="ItemWidget" skin="MW_ItemIconSmall" position="0 0 32 32" name="GemIcon"/>
|
||||
<Widget type="Widget">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedTextBox" skin="SandText" name="ChargeLabel">
|
||||
<Property key="Caption" value="#{sQuality}"/>
|
||||
<Property key="TextAlign" value="Right"/>
|
||||
</Widget>
|
||||
|
||||
<Widget type="AutoSizedTextBox" skin="SandText" name="Label">
|
||||
<Property key="Caption" value="#{sRechargeEnchantment}"/>
|
||||
</Widget>
|
||||
|
||||
<Widget type="ItemChargeView" skin="MW_ItemChargeView" align="Left Stretch" name="Box">
|
||||
|
@ -26,14 +16,25 @@
|
|||
|
||||
<Widget type="HBox">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
<Widget type="Widget">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
</Widget>
|
||||
<Widget type="AutoSizedButton" skin="MW_Button" name="CancelButton">
|
||||
<Property key="Caption" value="#{sCancel}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
<Widget type="ItemWidget" skin="MW_ItemIconBox" position="0 0 44 44" name="GemIcon">
|
||||
</Widget>
|
||||
|
||||
<Widget type="HBox" name="GemBox">
|
||||
<Widget type="AutoSizedTextBox" skin="SandText" name="ChargeLabel">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
<Property key="Caption" value="#{sCharges}"/>
|
||||
<Property key="TextAlign" value="Left"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
||||
<Widget type="Widget">
|
||||
<UserString key="HStretch" value="true"/>
|
||||
</Widget>
|
||||
|
||||
<Widget type="AutoSizedButton" skin="MW_Button" name="CancelButton">
|
||||
<Property key="Caption" value="#{sCancel}"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
</Widget>
|
||||
|
||||
</MyGUI>
|
||||
|
|
Loading…
Reference in a new issue