コード例 #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);
	}
コード例 #2
0
	NumericUpDown::NumericUpDown()
		:mValue(0)
		, mMin(0)
		, mMax(100)		
		, mShiftStep(5)
		, mStep(1)
	{
		mUIObject = UIObject::Create(GetRenderTargetSize());
		mUIObject->mOwnerUI = this;
		mUIObject->mTypeString = ComponentType::ConvertToString(GetType());
		mUIObject->SetTextColor(mTextColor);
		mUIObject->SetNoDrawBackground(true);		
	}
コード例 #3
0
	TextBox::TextBox()
		: mCursorPos(0)
		, mPasswd(false)		
		, mMatchHeight(false)
	{
		mUIObject = UIObject::Create(GetRenderTargetSize());
		mUIObject->mOwnerUI = this;
		mUIObject->mTypeString = ComponentType::ConvertToString(GetType());
		mUIObject->SetTextColor(mTextColor);
		mUIObject->SetNoDrawBackground(true);
		mUIObject->SetMultiline(true);
		SetProperty(UIProperty::FIXED_TEXT_SIZE, "true");
		SetProperty(UIProperty::MATCH_SIZE, "false");
	}
コード例 #4
0
TextField::TextField()
    : WinBase()
    , mPasswd(false)
    , mCursorOffset(0)
{
    mUIObject = UIObject::Create(GetRenderTargetSize());
    mUIObject->SetMaterial("EssentialEngineData/materials/UITextField.material");
    mUIObject->mOwnerUI = this;
    mUIObject->mTypeString = ComponentType::ConvertToString(GetType());
    mUIObject->SetTextSize(mTextSize);
    mUIObject->SetTextColor(mTextColor);
    RegisterEventFunc(UIEvents::EVENT_MOUSE_LEFT_CLICK,
                      std::bind(&TextField::OnClicked, this, std::placeholders::_1));
    RegisterEventFunc(UIEvents::EVENT_MOUSE_LEFT_DOUBLE_CLICK,
                      std::bind(&TextField::OnDoubleClicked, this, std::placeholders::_1));
}
コード例 #5
0
ImageBox::ImageBox()
	: mTextureAtlas(0)
	, mAtlasRegion(0)
	, mUseHighlight(false)
	, mKeepImageRatio(true)
	, mFrameImage(0)
	, mAnimation(false)
	, mSecPerFrame(0)
	, mPlayingTime(0)
	, mCurFrame(0), mImageFixedSize(false)
	, mTexture(0), mColorOveraySet(false)
	, mRenderTarget(0)
	, mImageRot(false)
	, mLinearSampler(false)
{
	mUIObject = UIObject::Create(GetRenderTargetSize());
	mUIObject->SetMaterial("EssentialEngineData/materials/UIImageBox.material");
	mUIObject->mOwnerUI = this;
	mUIObject->mTypeString = ComponentType::ConvertToString(GetType());
}
コード例 #6
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());
    }
}