/*============================================================================= -- Sets the caption of the text in the middle. =============================================================================*/ void ButtonCaption::SetCaption(String caption) { mCaption = caption; WeakPtr<Text> text = DynamicPtrCast<Text>(GetChild(IEI_BUTTONCAPTION_TEXT).lock()); if (!text.expired()) { text.lock()->SetText(caption); Font *font = text.lock()->GetFont(); unsigned width = (unsigned)font->GetTextLengthPx(mCaption.GetStd()); unsigned height = (unsigned)font->GetCharHeightPx(); //clip any characters that don't fit inside from the text element while (width > GetWidth()) { mCaption.Remove(mCaption.Size()-1,mCaption.Size()); SetCaption(mCaption); width = (unsigned)font->GetTextLengthPx(mCaption.GetStd()); } //properly center the text text.lock()->SetRelPos( Vector2D<int>((GetWidth()-width)/2, (GetHeight()-height)/2) ); } }
/*============================================================================= -- Drops the object with the id in the inventory if it exists. =============================================================================*/ void Actor::DropObject(int id) { //place the object on the ground behind the Actor so it does not walk over it right away. WeakPtr<Object> object = mInventory->GetObject(id); if (!object.expired()) { object.lock()->SetHeld(false); object.lock()->SetPos(Vector3D<double>(GetPos().x+32.0, GetPos().y+32.0, GetPos().z+2.0)); mInventory->RemoveObject(id); } }
/*============================================================================= -- Special actions for colliding with certain enity types. =============================================================================*/ void Actor::ReactToCollision(WeakPtr<Entity> entity) { if (entity.expired()) return; if (entity.lock()->GetType() == OBJECT) { WeakPtr<Object> object = WeakPtr<Object>(DynamicPtrCast<Object>(entity.lock())); if (object.lock()->GetObtainable()) HoldObject( object ); } }
/*============================================================================= -- Adds the object to the inventory. Effectively "picking up" the object. =============================================================================*/ void Actor::HoldObject(WeakPtr<Object> object) { if (!object.expired()) { mInventory->AddObject(object); object.lock()->SetHost( GetManager()->GetEntity(GetId()) ); } }
SharedPtr<OclDevice> OclDevice::getInstance() { AutoLock lock(m_lock); SharedPtr<OclDevice> device = m_instance.lock(); if (device) return device; device.reset(new OclDevice); if (!device->init()) { device.reset(); } return device; }
Box::Box(WeakPtr<SweepBox> sweepBox) { _SetType(BOX); _SetId(sweepBox.lock()->GetId()); _SetPos(sweepBox.lock()->GetPos()); _SetSize(sweepBox.lock()->GetWidth(), sweepBox.lock()->GetLength(), sweepBox.lock()->GetHeight()); _SetVelocity(sweepBox.lock()->GetVelocity());//TODO this is probably unecessary, so optimize out mSweepBox = SharedPtr<SweepBox>(new SweepBox); }
void ListBox::SelectCell(WeakPtr<Cell> cell) { //ensure the cell is actually a cell in the listbox std::vector< WeakPtr<Cell> >::iterator iter = mCells.begin(); while (iter != mCells.end()) { if ((*iter).lock() == cell.lock()) { mSelectedCell = cell; _SendElementMessageToListeners(ElementEvent::SELECTED, mSelectedCell.lock()->GetUID()); return; } iter++; } }
result_type operator()(const WeakPtr &wp) const { return wp.lock(); }
bool expired(const WeakPtr<VaapiDisplay>& weak) { return !weak.lock(); }
void operator()(Args&&... args) { auto raii_lock = weak_ref.lock(); if (raii_lock) handler(std::forward<Args>(args)...); }
inline Ptr adjacent() const { return _adjacent.lock(); }
inline Ptr prec() const { return _prec.lock(); }
inline Ptr next() const { return _next.lock(); }