1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/*!
@file
@author Albert Semenov
@date 07/2008
*/
#include "Precompiled.h"
#include "ToolTip.h"
namespace demo
{
ToolTip::ToolTip() :
BaseLayout("ToolTip.layout")
{
assignWidget(mTextName, "text_Name");
assignWidget(mTextCount, "text_Count");
assignWidget(mTextDesc, "text_Desc");
assignWidget(mImageInfo, "image_Info");
MyGUI::ISubWidgetText* text = mTextDesc->getSubWidgetText();
const MyGUI::IntCoord& coord = text ? text->getCoord() : MyGUI::IntCoord();
mOffsetHeight = mMainWidget->getHeight() - coord.height;
}
void ToolTip::show(ItemData* _data)
{
if ((_data == nullptr) || _data->isEmpty())
return;
mTextCount->setCaption(MyGUI::utility::toString(_data->getCount()));
mTextName->setCaption(_data->getInfo()->getItemName());
mTextDesc->setCaption(_data->getInfo()->getItemDescription());
if (!_data->isEmpty())
{
mImageInfo->setItemResourceInfo(_data->getImage(), "ToolTip", "Normal");
}
// вычисляем размер
MyGUI::ISubWidgetText* text = mTextDesc->getSubWidgetText();
const MyGUI::IntSize& text_size = text ? text->getTextSize() : MyGUI::IntSize();
mMainWidget->setSize(mMainWidget->getWidth(), mOffsetHeight + text_size.height);
mMainWidget->setVisible(true);
}
void ToolTip::hide()
{
mMainWidget->setVisible(false);
}
void ToolTip::move(const MyGUI::IntPoint& _point)
{
const MyGUI::IntPoint offset(10, 10);
MyGUI::IntPoint point = MyGUI::InputManager::getInstance().getMousePosition() + offset;
const MyGUI::IntSize& size = mMainWidget->getSize();
const MyGUI::IntSize& view_size = mMainWidget->getParentSize();
if ((point.left + size.width) > view_size.width)
{
point.left -= offset.left + offset.left + size.width;
}
if ((point.top + size.height) > view_size.height)
{
point.top -= offset.top + offset.top + size.height;
}
mMainWidget->setPosition(point);
}
} // namespace demo
|