From: Jiyun Yang Date: Tue, 9 Jun 2020 07:26:43 +0000 (+0900) Subject: [Tizen] Add VisualBase::GetType() X-Git-Tag: submit/tizen_5.5/20200616.080950~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4064db7fd19fc78f94bccd340d06da33b6d6a484;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [Tizen] Add VisualBase::GetType() Some controls want to know the visual type when the visual is given from the user. To do that in current DALi, it needs to call CreatePropertyMap() and get TYPE property from the map. Instead, this patch provides an API Visual::Base::GetType() to make it easy to see what the visual type is. Change-Id: I387a6cc43466897b2de17d3c2d9bae7dba201a10 Signed-off-by: Jiyun Yang --- diff --git a/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp b/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp index c679479187..651797e0f4 100644 --- a/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp +++ b/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/dummy-visual.cpp @@ -38,7 +38,7 @@ DummyVisualPtr DummyVisual::New( const Property::Map& properties ) } DummyVisual::DummyVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::Type::COLOR ), mActionCounter( 0 ) { } diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp index e50669cb41..9f922d8fc2 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp @@ -46,6 +46,7 @@ const char* TEST_NPATCH_FILE_NAME = TEST_RESOURCE_DIR "/button-up.9.png"; const char* TEST_SVG_FILE_NAME = TEST_RESOURCE_DIR "/svg1.svg"; const char* TEST_OBJ_FILE_NAME = TEST_RESOURCE_DIR "/Cube.obj"; const char* TEST_MTL_FILE_NAME = TEST_RESOURCE_DIR "/ToyRobot-Metal.mtl"; +const char* TEST_VECTOR_IMAGE_FILE_NAME = TEST_RESOURCE_DIR "/insta_camera.json"; const char* TEST_RESOURCE_LOCATION = TEST_RESOURCE_DIR "/"; @@ -3670,3 +3671,139 @@ int UtcDaliVisualRoundedCorner(void) END_TEST; } + +int UtcDaliVisualGetType(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualGetType" ); + + VisualFactory factory = VisualFactory::Get(); + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::BORDER; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::BORDER ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::COLOR; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::COLOR ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::GRADIENT; + properties[GradientVisual::Property::START_POSITION] = Vector2( -1.f, -1.f ); + properties[GradientVisual::Property::END_POSITION] = Vector2( 1.f, 1.f ); + properties[GradientVisual::Property::STOP_OFFSET] = Vector2(0.f, 1.f); + // propertyMap.Insert( GradientVisual::Property::SPREAD_METHOD, GradientVisual::SpreadMethod::REPEAT) ; + Property::Array stopColors; + stopColors.PushBack( Color::RED ); + stopColors.PushBack( Color::GREEN ); + properties[GradientVisual::Property::STOP_COLOR] = stopColors; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::GRADIENT ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::IMAGE; + properties.Insert( ImageVisual::Property::URL, TEST_IMAGE_FILE_NAME ); + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::IMAGE ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::MESH; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::MESH ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::PRIMITIVE; + properties[PrimitiveVisual::Property::SHAPE] = PrimitiveVisual::Shape::CUBE; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::PRIMITIVE ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::WIREFRAME; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::WIREFRAME ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::TEXT; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::TEXT ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::N_PATCH; + properties[ImageVisual::Property::URL] = TEST_NPATCH_FILE_NAME; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::N_PATCH ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::SVG; + properties[ImageVisual::Property::URL] = TEST_SVG_FILE_NAME; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::SVG ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = Visual::ANIMATED_IMAGE; + properties[ImageVisual::Property::URL] = TEST_GIF_FILE_NAME; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == Visual::ANIMATED_IMAGE ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = DevelVisual::ANIMATED_GRADIENT; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == static_cast( DevelVisual::ANIMATED_GRADIENT ) ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = DevelVisual::ANIMATED_VECTOR_IMAGE; + properties[ImageVisual::Property::URL] = TEST_VECTOR_IMAGE_FILE_NAME; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == static_cast( DevelVisual::ANIMATED_VECTOR_IMAGE ) ); + } + + { + Property::Map properties; + properties[Visual::Property::TYPE] = DevelVisual::ARC; + Visual::Base visual = factory.CreateVisual( properties ); + + DALI_TEST_CHECK( visual.GetType() == static_cast( DevelVisual::ARC ) ); + } + + END_TEST; +} diff --git a/dali-toolkit/devel-api/visual-factory/visual-base.cpp b/dali-toolkit/devel-api/visual-factory/visual-base.cpp index 7b20c60822..c0c6d2bb4a 100644 --- a/dali-toolkit/devel-api/visual-factory/visual-base.cpp +++ b/dali-toolkit/devel-api/visual-factory/visual-base.cpp @@ -96,6 +96,11 @@ void Visual::Base::CreatePropertyMap( Dali::Property::Map& map ) const GetImplementation( *this ).CreatePropertyMap( map ); } +Visual::Type Visual::Base::GetType() const +{ + return GetImplementation( *this ).GetType(); +} + diff --git a/dali-toolkit/devel-api/visual-factory/visual-base.h b/dali-toolkit/devel-api/visual-factory/visual-base.h index 94db5c49f3..0d6fd9e6a1 100755 --- a/dali-toolkit/devel-api/visual-factory/visual-base.h +++ b/dali-toolkit/devel-api/visual-factory/visual-base.h @@ -23,6 +23,7 @@ // INTERNAL INCLUDES #include +#include namespace Dali { @@ -190,6 +191,13 @@ public: */ void CreatePropertyMap( Dali::Property::Map& map ) const; + /** + * @brief Get the type of this visual. + * + * @return The the type of this visual. + */ + Visual::Type GetType() const; + public: // Not intended for application developers explicit DALI_INTERNAL Base(Internal::Visual::Base *impl); diff --git a/dali-toolkit/internal/visuals/animated-gradient/animated-gradient-visual.cpp b/dali-toolkit/internal/visuals/animated-gradient/animated-gradient-visual.cpp index d4e2f6ef47..d871c8788d 100755 --- a/dali-toolkit/internal/visuals/animated-gradient/animated-gradient-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-gradient/animated-gradient-visual.cpp @@ -216,7 +216,7 @@ AnimatedGradientVisualPtr AnimatedGradientVisual::New( VisualFactoryCache& facto } AnimatedGradientVisual::AnimatedGradientVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ) +: Visual::Base( factoryCache, Visual::FittingMode::FILL, static_cast( Toolkit::DevelVisual::ANIMATED_GRADIENT ) ) { SetupDefaultValue(); } diff --git a/dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp b/dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp index a0ebe451fa..386013a98c 100755 --- a/dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp @@ -168,7 +168,7 @@ void AnimatedImageVisual::InitializeGif( const VisualUrl& imageUrl ) } AnimatedImageVisual::AnimatedImageVisual( VisualFactoryCache& factoryCache, ImageVisualShaderFactory& shaderFactory ) -: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO ), +: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO, Toolkit::Visual::ANIMATED_IMAGE ), mFrameDelayTimer(), mPlacementActor(), mImageVisualShaderFactory( shaderFactory ), diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp index a44b5a0b2e..d40eb180d4 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp @@ -84,7 +84,7 @@ AnimatedVectorImageVisualPtr AnimatedVectorImageVisual::New( VisualFactoryCache& } AnimatedVectorImageVisual::AnimatedVectorImageVisual( VisualFactoryCache& factoryCache, ImageVisualShaderFactory& shaderFactory, const VisualUrl& imageUrl ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, static_cast( Toolkit::DevelVisual::ANIMATED_VECTOR_IMAGE ) ), mUrl( imageUrl ), mAnimationData(), mVectorAnimationTask( new VectorAnimationTask( factoryCache, imageUrl.GetUrl() ) ), diff --git a/dali-toolkit/internal/visuals/arc/arc-visual.cpp b/dali-toolkit/internal/visuals/arc/arc-visual.cpp index a1eb02a264..618b75db5f 100644 --- a/dali-toolkit/internal/visuals/arc/arc-visual.cpp +++ b/dali-toolkit/internal/visuals/arc/arc-visual.cpp @@ -153,7 +153,7 @@ ArcVisualPtr ArcVisual::New( VisualFactoryCache& factoryCache, const Property::M } ArcVisual::ArcVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, static_cast( Toolkit::DevelVisual::ARC ) ), mThickness( 0.0f ), mRadius( 0.0f ), mStartAngle( 0.0f ), diff --git a/dali-toolkit/internal/visuals/border/border-visual.cpp b/dali-toolkit/internal/visuals/border/border-visual.cpp index a64b48d70c..63bf8d955d 100644 --- a/dali-toolkit/internal/visuals/border/border-visual.cpp +++ b/dali-toolkit/internal/visuals/border/border-visual.cpp @@ -125,7 +125,7 @@ BorderVisualPtr BorderVisual::New( VisualFactoryCache& factoryCache, const Prope } BorderVisual::BorderVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::BORDER ), mBorderColor( Color::TRANSPARENT ), mBorderSize( 0.f ), mBorderColorIndex( Property::INVALID_INDEX ), diff --git a/dali-toolkit/internal/visuals/color/color-visual.cpp b/dali-toolkit/internal/visuals/color/color-visual.cpp index 25ea34b389..73fb54aca0 100644 --- a/dali-toolkit/internal/visuals/color/color-visual.cpp +++ b/dali-toolkit/internal/visuals/color/color-visual.cpp @@ -135,7 +135,7 @@ ColorVisualPtr ColorVisual::New( VisualFactoryCache& factoryCache, const Propert } ColorVisual::ColorVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::COLOR ), mRenderIfTransparent( false ) { } diff --git a/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp b/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp index 53ea0413b4..afa5e60b47 100644 --- a/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp +++ b/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp @@ -212,7 +212,7 @@ GradientVisualPtr GradientVisual::New( VisualFactoryCache& factoryCache, const P } GradientVisual::GradientVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::GRADIENT ), mGradientType( LINEAR ), mIsOpaque( true ) { diff --git a/dali-toolkit/internal/visuals/image/image-visual.cpp b/dali-toolkit/internal/visuals/image/image-visual.cpp index ad3f047341..035c41eb35 100755 --- a/dali-toolkit/internal/visuals/image/image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/image-visual.cpp @@ -156,7 +156,7 @@ ImageVisual::ImageVisual( VisualFactoryCache& factoryCache, ImageDimensions size, FittingMode::Type fittingMode, Dali::SamplingMode::Type samplingMode ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::IMAGE ), mImage(), mPixelArea( FULL_TEXTURE_RECT ), mPlacementActor(), @@ -182,7 +182,7 @@ ImageVisual::ImageVisual( VisualFactoryCache& factoryCache, } ImageVisual::ImageVisual( VisualFactoryCache& factoryCache, ImageVisualShaderFactory& shaderFactory, const Image& image ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::IMAGE ), mImage( image ), mPixelArea( FULL_TEXTURE_RECT ), mPlacementActor(), diff --git a/dali-toolkit/internal/visuals/mesh/mesh-visual.cpp b/dali-toolkit/internal/visuals/mesh/mesh-visual.cpp index 7fbb28e819..3b918e273e 100644 --- a/dali-toolkit/internal/visuals/mesh/mesh-visual.cpp +++ b/dali-toolkit/internal/visuals/mesh/mesh-visual.cpp @@ -351,7 +351,7 @@ MeshVisualPtr MeshVisual::New( VisualFactoryCache& factoryCache, const Property: } MeshVisual::MeshVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO ), +: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO, Toolkit::Visual::MESH ), mShadingMode( Toolkit::MeshVisual::ShadingMode::TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING ), mUseTexture( true ), mUseMipmapping( true ), diff --git a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp index 9006a5ab5f..f5d4da5185 100755 --- a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp +++ b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp @@ -419,7 +419,7 @@ void NPatchVisual::DoCreateInstancePropertyMap( Property::Map& map ) const } NPatchVisual::NPatchVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::N_PATCH ), mLoader( factoryCache.GetNPatchLoader() ), mImageUrl(), mAuxiliaryUrl(), diff --git a/dali-toolkit/internal/visuals/primitive/primitive-visual.cpp b/dali-toolkit/internal/visuals/primitive/primitive-visual.cpp index 8b2346c751..9a9c06f8a6 100644 --- a/dali-toolkit/internal/visuals/primitive/primitive-visual.cpp +++ b/dali-toolkit/internal/visuals/primitive/primitive-visual.cpp @@ -173,7 +173,7 @@ PrimitiveVisualPtr PrimitiveVisual::New( VisualFactoryCache& factoryCache, const } PrimitiveVisual::PrimitiveVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO ), +: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO, Toolkit::Visual::PRIMITIVE ), mScaleDimensions( Vector3::ONE ), mScaleTopRadius( DEFAULT_SCALE_TOP_RADIUS ), mScaleBottomRadius( DEFAULT_SCALE_BOTTOM_RADIUS ), diff --git a/dali-toolkit/internal/visuals/svg/svg-visual.cpp b/dali-toolkit/internal/visuals/svg/svg-visual.cpp index 59c38775e6..d8d18f7bfc 100644 --- a/dali-toolkit/internal/visuals/svg/svg-visual.cpp +++ b/dali-toolkit/internal/visuals/svg/svg-visual.cpp @@ -65,7 +65,7 @@ SvgVisualPtr SvgVisual::New( VisualFactoryCache& factoryCache, ImageVisualShader } SvgVisual::SvgVisual( VisualFactoryCache& factoryCache, ImageVisualShaderFactory& shaderFactory, const VisualUrl& imageUrl ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, Toolkit::Visual::SVG ), mImageVisualShaderFactory( shaderFactory ), mAtlasRect( FULL_TEXTURE_RECT ), mImageUrl( imageUrl ), diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp index 7b07205b7a..bd2392682f 100755 --- a/dali-toolkit/internal/visuals/text/text-visual.cpp +++ b/dali-toolkit/internal/visuals/text/text-visual.cpp @@ -380,7 +380,7 @@ void TextVisual::DoCreateInstancePropertyMap( Property::Map& map ) const TextVisual::TextVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO ), +: Visual::Base( factoryCache, Visual::FittingMode::FIT_KEEP_ASPECT_RATIO, Toolkit::Visual::TEXT ), mController( Text::Controller::New() ), mTypesetter( Text::Typesetter::New( mController->GetTextModel() ) ), mAnimatableTextColorPropertyIndex( Property::INVALID_INDEX ), diff --git a/dali-toolkit/internal/visuals/visual-base-data-impl.cpp b/dali-toolkit/internal/visuals/visual-base-data-impl.cpp index 67d54d5dd6..acb13e4964 100644 --- a/dali-toolkit/internal/visuals/visual-base-data-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-base-data-impl.cpp @@ -114,7 +114,7 @@ bool GetPolicyFromValue( const Property::Value& value, Vector2& policy ) } // unnamed namespace -Internal::Visual::Base::Impl::Impl(FittingMode fittingMode) +Internal::Visual::Base::Impl::Impl( FittingMode fittingMode, Toolkit::Visual::Type type ) : mCustomShader( NULL ), mBlendSlotDelegate( NULL ), mEventObserver( NULL ), @@ -127,7 +127,8 @@ Internal::Visual::Base::Impl::Impl(FittingMode fittingMode) mCornerRadiusIndex( Property::INVALID_INDEX ), mFittingMode( fittingMode ), mFlags( 0 ), - mResourceStatus( Toolkit::Visual::ResourceStatus::PREPARING ) + mResourceStatus( Toolkit::Visual::ResourceStatus::PREPARING ), + mType( type ) { } diff --git a/dali-toolkit/internal/visuals/visual-base-data-impl.h b/dali-toolkit/internal/visuals/visual-base-data-impl.h index 123a722235..906e104bc7 100644 --- a/dali-toolkit/internal/visuals/visual-base-data-impl.h +++ b/dali-toolkit/internal/visuals/visual-base-data-impl.h @@ -46,8 +46,9 @@ struct Base::Impl /** * Constructor * @param [in] fittingMode that the derived class prefers + * @param [in] type The type of the this visual */ - Impl(FittingMode fittingMode); + Impl( FittingMode fittingMode, Toolkit::Visual::Type type ); /** * Destructor @@ -131,6 +132,7 @@ struct Base::Impl FittingMode mFittingMode; //< How the contents should fit the view int mFlags; Toolkit::Visual::ResourceStatus mResourceStatus; + const Toolkit::Visual::Type mType; }; } // namespace Visual diff --git a/dali-toolkit/internal/visuals/visual-base-impl.cpp b/dali-toolkit/internal/visuals/visual-base-impl.cpp index 3abe0184a6..cff0018b10 100755 --- a/dali-toolkit/internal/visuals/visual-base-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-base-impl.cpp @@ -63,8 +63,8 @@ DALI_ENUM_TO_STRING_TABLE_END( VISUAL_FITTING_MODE ) } // namespace -Visual::Base::Base( VisualFactoryCache& factoryCache, FittingMode fittingMode ) -: mImpl( new Impl(fittingMode) ), +Visual::Base::Base( VisualFactoryCache& factoryCache, FittingMode fittingMode, Toolkit::Visual::Type type ) +: mImpl( new Impl( fittingMode, type ) ), mFactoryCache( factoryCache ) { } @@ -492,6 +492,11 @@ bool Visual::Base::IsResourceReady() const return ( mImpl->mResourceStatus == Toolkit::Visual::ResourceStatus::READY ); } +Toolkit::Visual::Type Visual::Base::GetType() const +{ + return mImpl->mType; +} + Toolkit::Visual::ResourceStatus Visual::Base::GetResourceStatus() const { return mImpl->mResourceStatus; diff --git a/dali-toolkit/internal/visuals/visual-base-impl.h b/dali-toolkit/internal/visuals/visual-base-impl.h index ecf832cbda..9017b36fb7 100644 --- a/dali-toolkit/internal/visuals/visual-base-impl.h +++ b/dali-toolkit/internal/visuals/visual-base-impl.h @@ -266,14 +266,23 @@ public: */ virtual Base& GetVisualObject(); + /** + * @brief Get the type of this visual. + * + * @return The the type of this visual. + */ + Toolkit::Visual::Type GetType() const; + protected: /** * @brief Constructor. * * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object + * @param[in] fittingMode The value that determines how the visual should be fit to the view + * @param[in] type The type of the this visual */ - Base( VisualFactoryCache& factoryCache, FittingMode fittingMode ); + Base( VisualFactoryCache& factoryCache, FittingMode fittingMode, Toolkit::Visual::Type type ); /** * @brief A reference counted object may only be deleted by calling Unreference(). diff --git a/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp b/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp index 1202d1c827..5364de2400 100644 --- a/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp +++ b/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp @@ -106,7 +106,7 @@ WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visua } WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual ) -: Visual::Base( factoryCache, Visual::FittingMode::FILL ), +: Visual::Base( factoryCache, Visual::FittingMode::FILL, actualVisual ? actualVisual->GetType() : Toolkit::Visual::WIREFRAME ), mActualVisual( actualVisual ) { }