/*=============================================================================
		-- 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) );
			}
		}
Beispiel #2
0
		/*=============================================================================
		-- 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);
			}
		}
Beispiel #3
0
		/*=============================================================================
		-- 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 );
			}
		}
Beispiel #4
0
		/*=============================================================================
		-- 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()) );
			}
		}
Beispiel #5
0
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;
}
Beispiel #6
0
		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);
		}
Beispiel #7
0
		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++;
			}
		}
Beispiel #8
0
 result_type operator()(const WeakPtr &wp) const
 {
   return wp.lock();
 }
Beispiel #9
0
bool expired(const WeakPtr<VaapiDisplay>& weak)
{
    return !weak.lock();
}
Beispiel #10
0
 void operator()(Args&&... args)
 {
     auto raii_lock = weak_ref.lock();
     if (raii_lock)
         handler(std::forward<Args>(args)...);
 }
Beispiel #11
0
 inline
 Ptr
 adjacent() const
 {
     return _adjacent.lock();
 }
Beispiel #12
0
 inline
 Ptr
 prec() const
 {
     return _prec.lock();
 }
Beispiel #13
0
 inline
 Ptr
 next() const
 {
     return _next.lock();
 }