Ejemplo n.º 1
0
	bool TextBox::SetProperty(UIProperty::Enum prop, const char* val)
	{		
		switch (prop)
		{
		case UIProperty::BACKGROUND_IMAGE_NOATLAS:
		{
			mStrBackImage = val;
			if (!mImage)
			{
				mImage = ImageBox::Create();
				mImage->SetHwndId(GetHwndId());
				mImage->SetRender3D(mRender3D, GetRenderTargetSize());
				mImage->SetManualParent(mSelfPtr.lock());
				mImage->ChangePos(GetFinalPos());
				mImage->ChangeSize(GetFinalSize());
			}
			UIManager::GetInstance().DirtyRenderList(GetHwndId());

			mImage->SetTexture(val);
			return true;
		}

		case UIProperty::KEEP_IMAGE_RATIO:
		{
			mStrKeepRatio = val;
			if (!mImage)
			{
				mImage = ImageBox::Create();
				mImage->SetHwndId(GetHwndId());
				mImage->SetRender3D(mRender3D, GetRenderTargetSize());
				mImage->SetManualParent(mSelfPtr.lock());
				mImage->ChangePos(GetFinalPos());
				mImage->ChangeSize(GetFinalSize());
			}
			UIManager::GetInstance().DirtyRenderList(GetHwndId());
			mImage->SetKeepImageRatio(StringConverter::ParseBool(val, true));
											 
			return true;
		}

		case UIProperty::TEXTBOX_MATCH_HEIGHT:
		{
												 mMatchHeight = StringConverter::ParseBool(val);
												 if (mMatchHeight)
												 {
													 unsigned height = GetTextBoxHeight();
													 ChangeSizeY(height);
												 }
												 return true;
		}

		}
		
		
		return __super::SetProperty(prop, val);
	}
Ejemplo n.º 2
0
void ImageBox::SetTexture(const char* file)
{
	if (!file)
		return;
	if (mImageFile == file)
		return;

	mImageFile = file ? file : "";

	if (mImageFile.empty()){
		SetTexture(TexturePtr());
	}
	else{
		TexturePtr pTexture = Renderer::GetInstance().CreateTexture(mImageFile.c_str());
		SetTexture(pTexture);
	}
	
	UIManager::GetInstance().DirtyRenderList(GetHwndId());
}
Ejemplo n.º 3
0
void TextField::OnFocusGain()
{
    KeyboardCursor::GetInstance().SetHwndId(GetHwndId());
    UIManager::GetInstance().DirtyRenderList(mHwndId);

    auto mani = UIManager::GetInstance().GetTextManipulator();
    mani->AddObserver(ITextManipulatorObserver::Default, std::dynamic_pointer_cast<ITextManipulatorObserver>(mSelfPtr.lock()));
    mani->SetText(&mTextw);


    auto propertyList = IsInPropertyList();
    if (propertyList)
    {
        ListItem* listItem = (ListItem*)GetParent().get();
        propertyList->SetFocusRow(listItem->GetRowIndex());
    }

    KeyboardCursor::GetInstance().SetScissorRegion(GetScissorRegion());
}
Ejemplo n.º 4
0
void TextField::SetUseBorder(bool use)
{
    if (use && mBorders.empty())
    {
        auto T = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        T->SetHwndId(GetHwndId());
        mBorders.push_back(T);
        T->SetRender3D(mRender3D, GetRenderTargetSize());
        T->SetManualParent(mSelfPtr.lock());
        T->ChangeSizeY(1);
        T->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");


        auto L = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        L->SetHwndId(GetHwndId());
        mBorders.push_back(L);
        L->SetRender3D(mRender3D, GetRenderTargetSize());
        L->SetManualParent(mSelfPtr.lock());
        L->ChangeSizeX(1);
        L->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");

        auto R = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        R->SetHwndId(GetHwndId());
        mBorders.push_back(R);
        R->SetRender3D(mRender3D, GetRenderTargetSize());
        R->SetManualParent(mSelfPtr.lock());
        R->SetAlign(ALIGNH::RIGHT, ALIGNV::TOP);
        R->ChangeSizeX(1);
        R->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");


        auto B = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        B->SetHwndId(GetHwndId());
        mBorders.push_back(B);
        B->SetRender3D(mRender3D, GetRenderTargetSize());
        B->SetManualParent(mSelfPtr.lock());
        B->SetAlign(ALIGNH::LEFT, ALIGNV::BOTTOM);
        B->ChangeSizeY(1);
        B->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");

        auto LT = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        LT->SetHwndId(GetHwndId());
        mBorders.push_back(LT);
        LT->SetRender3D(mRender3D, GetRenderTargetSize());
        LT->SetManualParent(mSelfPtr.lock());
        LT->ChangeSize(Vec2I(1, 1));
        LT->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");

        auto RT = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        RT->SetHwndId(GetHwndId());
        mBorders.push_back(RT);
        RT->SetRender3D(mRender3D, GetRenderTargetSize());
        RT->SetManualParent(mSelfPtr.lock());
        RT->ChangeSize(Vec2I(1, 1));
        RT->SetAlign(ALIGNH::RIGHT, ALIGNV::TOP);
        RT->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");

        auto LB = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        LB->SetHwndId(GetHwndId());
        mBorders.push_back(LB);
        LB->SetRender3D(mRender3D, GetRenderTargetSize());
        LB->SetManualParent(mSelfPtr.lock());
        LB->ChangeSize(Vec2I(1, 1));
        LB->SetAlign(ALIGNH::LEFT, ALIGNV::BOTTOM);
        LB->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");

        auto RB = std::static_pointer_cast<ImageBox>(UIManager::GetInstance().CreateComponent(ComponentType::ImageBox));
        RB->SetHwndId(GetHwndId());
        mBorders.push_back(RB);
        RB->SetRender3D(mRender3D, GetRenderTargetSize());
        RB->SetManualParent(mSelfPtr.lock());
        RB->ChangeSize(Vec2I(1, 1));
        RB->SetAlign(ALIGNH::RIGHT, ALIGNV::BOTTOM);
        RB->SetTextureAtlasRegion("EssentialEngineData/textures/ui.xml", "ThinBorder");

        RefreshBorder();
        RefreshScissorRects();
        UIManager::GetInstance().DirtyRenderList(GetHwndId());
    }
    else if (!use && !mBorders.empty())
    {
        mBorders.clear();
        UIManager::GetInstance().DirtyRenderList(GetHwndId());
    }
}