258 + m_fields.size()
);
- gui::IGUIButton *e = Environment->addButton(rect, this, spec.fid, spec.flabel.c_str());
+ gui::IGUIButton *e = Environment->addButton(rect, this, spec.fid, L"");
if (spec.fname == data->focused_fieldname) {
Environment->setFocus(e);
pos.X += stof(v_pos[0]) * (float) spacing.X;
pos.Y += stof(v_pos[1]) * (float) spacing.Y;
m_itemimages.push_back(ImageDrawSpec("", item_name, pos, geom));
+
+ StaticTextSpec label_spec(
+ utf8_to_wide(label),
+ rect
+ );
+ m_static_texts.push_back(label_spec);
return;
}
errorstream<< "Invalid ItemImagebutton element(" << parts.size() << "): '" << element << "'" << std::endl;
m_boxes.clear();
m_tooltips.clear();
m_inventory_rings.clear();
+ m_static_texts.clear();
// Set default values (fits old formspec values)
m_bgcolor = video::SColor(140,0,0,0);
&& m_selected_item->listname == s.listname
&& m_selected_item->i == item_i;
bool hovering = rect.isPointInside(m_pointer);
+ ItemRotationKind rotation_kind = selected ? IT_ROT_SELECTED :
+ (hovering ? IT_ROT_HOVERED : IT_ROT_NONE);
if (phase == 0) {
if (hovering) {
{
drawItemStack(driver, m_font, item,
rect, &AbsoluteClippingRect, m_gamedef,
- selected, hovering, false);
+ rotation_kind);
}
// Draw tooltip
if (!m_selected_item) {
drawItemStack(driver, m_font, ItemStack(),
core::rect<s32>(v2s32(0, 0), v2s32(0, 0)),
- NULL, m_gamedef, false, false, true);
+ NULL, m_gamedef, IT_ROT_DRAGGED);
return;
}
core::rect<s32> imgrect(0,0,imgsize.X,imgsize.Y);
core::rect<s32> rect = imgrect + (m_pointer - imgrect.getCenter());
- drawItemStack(driver, m_font, stack, rect, NULL, m_gamedef, false, false, true);
+ drawItemStack(driver, m_font, stack, rect, NULL, m_gamedef, IT_ROT_DRAGGED);
}
void GUIFormSpecMenu::drawMenu()
// Viewport rectangle on screen
core::rect<s32> rect = imgrect + spec.pos;
drawItemStack(driver, m_font, item, rect, &AbsoluteClippingRect,
- m_gamedef, false, false, false);
+ m_gamedef, IT_ROT_NONE);
}
/*
if (!item_hovered) {
drawItemStack(driver, m_font, ItemStack(),
core::rect<s32>(v2s32(0, 0), v2s32(0, 0)),
- NULL, m_gamedef, false, true, false);
+ NULL, m_gamedef, IT_ROT_HOVERED);
}
/* TODO find way to show tooltips on touchscreen */
m_pointer = m_device->getCursorControl()->getPosition();
#endif
+ /*
+ Draw static text elements
+ */
+ for (u32 i = 0; i < m_static_texts.size(); i++) {
+ const StaticTextSpec &spec = m_static_texts[i];
+ video::SColor color(255, 255, 255, 255);
+ m_font->draw(spec.text.c_str(), spec.rect, color, true, true, &spec.rect);
+ }
+
/*
Draw fields/buttons tooltips
*/