123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "ItemStack.h"
- #include <XML.h>
- #include "Globals.h"
- #include "UIMLToolTip.h"
- ItemStackElement::ItemStackElement()
- : Framework::UIMLElement()
- {}
- bool ItemStackElement::isApplicableFor(Framework::XML::Element& element)
- {
- return element.getName().istGleich("itemStack");
- }
- Framework::Zeichnung* ItemStackElement::parseElement(
- Framework::XML::Element& element, Framework::UIMLContainer& generalFactory)
- {
- ItemStackView* result = new ItemStackView(dynamic_cast<Framework::Schrift*>(
- generalFactory.getFactory().initParam.schrift->getThis()));
- updateElement(element, *result, generalFactory);
- return result;
- }
- bool ItemStackElement::updateElement(Framework::XML::Element& element,
- Framework::Zeichnung& z,
- Framework::UIMLContainer& generalFactory)
- {
- ItemStackView* view = dynamic_cast<ItemStackView*>(&z);
- if (!view) return false;
- view->setCount(element.getAttributeValue("count"));
- auto tip = element.selectChildsByName("tip");
- if (tip.exists())
- {
- view->setToolTip((Framework::RCPointer<Framework::XML::Element>)
- tip.getFirstElement());
- }
- int type = (int)element.getAttributeValue("type");
- const ItemType* itemType = zItemType(type);
- if (itemType)
- {
- view->setHintergrundBildZ(
- dynamic_cast<Framework::Bild*>(itemType->zIcon()->getThis()));
- }
- return true;
- }
- ItemStackView::ItemStackView(Framework::Schrift* schrift)
- : Framework::ZeichnungHintergrund(),
- count("")
- {
- setStyle(ZeichnungHintergrund::Style::Erlaubt
- | ZeichnungHintergrund::Style::Sichtbar
- | ZeichnungHintergrund::Style::Hintergrund
- | ZeichnungHintergrund::Style::HBild
- | ZeichnungHintergrund::Style::HAlpha
- | ZeichnungHintergrund::Style::Rahmen);
- setRahmenBreite(1);
- setRahmenFarbe(0xFF52525E);
- tr.setSchriftZ(schrift);
- tr.setSchriftSize(12);
- }
- void ItemStackView::setCount(Framework::Text count)
- {
- this->count = count;
- }
- void ItemStackView::setToolTip(Framework::XML::Element* zToolTipUIML)
- {
- UIMLToolTip* tip = new UIMLToolTip();
- tip->setUIML(zToolTipUIML->toString());
- setToolTipZ(tip);
- }
- void ItemStackView::render(Framework::Bild& rObj)
- {
- Framework::ZeichnungHintergrund::render(rObj);
- if (rObj.setDrawOptions(pos, gr))
- {
- if (rObj.setDrawOptions(getRahmenBreite(),
- getRahmenBreite(),
- getInnenBreite(),
- getInnenHeight()))
- {
- tr.renderText(getInnenBreite() - 5 - tr.getTextBreite(count),
- getInnenHeight() - 5 - tr.getTextHeight(count),
- count,
- rObj,
- 0xFFFFFFFF);
- rObj.releaseDrawOptions();
- }
- rObj.releaseDrawOptions();
- }
- }
|