diff --git a/apps/openmw/mwgui/container.cpp b/apps/openmw/mwgui/container.cpp index b4d3698061..65df9a9dd3 100644 --- a/apps/openmw/mwgui/container.cpp +++ b/apps/openmw/mwgui/container.cpp @@ -80,7 +80,7 @@ void ContainerBase::onContainerClicked(MyGUI::Widget* _sender) { ItemWidget* item = static_cast(mDragAndDrop->mDraggedWidget); std::cout << item->mPos << (*mDragAndDrop->mStore.begin()).getTypeName(); - if(item->mPtr.getContainerStore() == 0) std::cout << "nocontainer!"; + if((*item->getUserData()).getContainerStore() == 0) std::cout << "nocontainer!"; MWWorld::ContainerStore& containerStore = MWWorld::Class::get(mContainer).getContainerStore(mContainer); containerStore.add(*mDragAndDrop->mStore.begin()); mDragAndDrop->mStore.clear(); @@ -135,8 +135,9 @@ void ContainerBase::drawItems() ItemWidget* image = mContainerWidget->createWidget("ImageBox", MyGUI::IntCoord(x, y, 32, 32), MyGUI::Align::Default); MyGUI::TextBox* text = image->createWidget("SandBrightText", MyGUI::IntCoord(x, y, 18, 18), MyGUI::Align::Default, std::string("Label")); image->eventMouseButtonClick += MyGUI::newDelegate(this,&ContainerBase::onSelectedItem); + image->setUserString("ToolTipType", "ItemPtr"); + image->setUserData(*iter); image->mPos = index; - image->mPtr = *iter; x += 36; if(count % 20 == 0) { diff --git a/apps/openmw/mwgui/itemwidget.hpp b/apps/openmw/mwgui/itemwidget.hpp index ff65bfd4d0..0b204b10ea 100644 --- a/apps/openmw/mwgui/itemwidget.hpp +++ b/apps/openmw/mwgui/itemwidget.hpp @@ -10,9 +10,8 @@ namespace MWGui MYGUI_RTTI_DERIVED( ItemWidget ) public: - MWWorld::Ptr mPtr; int mPos; }; } -#endif \ No newline at end of file +#endif diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index 7dc1ecba73..baa38f430b 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -61,12 +61,14 @@ void ToolTips::onFrame(float frameDuration) else if (type == "Text") { info.text = text; + tooltipSize = createToolTip(info); } else if (type == "CaptionText") { std::string caption = focus->getUserString("ToolTipCaption"); info.caption = caption; info.text = text; + tooltipSize = createToolTip(info); } else if (type == "ImageCaptionText") { @@ -77,8 +79,13 @@ void ToolTips::onFrame(float frameDuration) info.text = text; info.caption = caption; info.icon = image; + tooltipSize = createToolTip(info); + } + else if (type == "ItemPtr") + { + mFocusObject = *focus->getUserData(); + tooltipSize = getToolTipViaPtr(); } - tooltipSize = createToolTip(info); IntPoint tooltipPosition = InputManager::getInstance().getMousePosition() + IntPoint(0, 24);