On state change, visuals now keep instance data 36/116336/7
authorDavid Steele <david.steele@samsung.com>
Thu, 23 Feb 2017 21:31:41 +0000 (21:31 +0000)
committerDavid Steele <david.steele@samsung.com>
Fri, 3 Mar 2017 13:32:30 +0000 (13:32 +0000)
commite2fbffea1d7c5d3df04b025247c1a77377a3f0c3
treeb37c2af7f2bc8e8f73fe08e3ed1f098bf5f89446
parentb4c97a599d6c3c369584d96cc1cfcfa575107e78
On state change, visuals now keep instance data

If a visual such as a text visual has instance data (i.e. the text string)
ensure that this is applied following a state change where the visual
is removed and re-added.

Added new method CreateInstancePropertyMap to Visual::Base::Impl,
and methods DoCreateInstancePropertyMap to derived visuals for writing instance data
into. So far, this is for text visual's text property and image visual's desired image
size properties.

TODO: Prevent the visual being re-added if no properties change
(or only animatable properties change) (Whilst taking into account string vs index keys; Property Array vs Vector...

[ Note: this is problematic for gradient visual, which generates a bunch of property arrays whilst Builder has generated Vectors from the equivalent JSON ]

Change-Id: I742c47067fc19fbaeee2f01195f6f00501b16c85
Signed-off-by: David Steele <david.steele@samsung.com>
33 files changed:
automated-tests/src/dali-toolkit-styling/default-theme.json
automated-tests/src/dali-toolkit-styling/utc-Dali-StyleManager.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h
dali-toolkit/internal/builder/builder-impl.cpp
dali-toolkit/internal/builder/dictionary.h
dali-toolkit/internal/builder/style.cpp
dali-toolkit/internal/builder/style.h
dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp
dali-toolkit/internal/visuals/animated-image/animated-image-visual.h
dali-toolkit/internal/visuals/border/border-visual.cpp
dali-toolkit/internal/visuals/border/border-visual.h
dali-toolkit/internal/visuals/color/color-visual.cpp
dali-toolkit/internal/visuals/color/color-visual.h
dali-toolkit/internal/visuals/gradient/gradient-visual.cpp
dali-toolkit/internal/visuals/gradient/gradient-visual.h
dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/image/image-visual.h
dali-toolkit/internal/visuals/mesh/mesh-visual.cpp
dali-toolkit/internal/visuals/mesh/mesh-visual.h
dali-toolkit/internal/visuals/npatch/npatch-visual.cpp
dali-toolkit/internal/visuals/npatch/npatch-visual.h
dali-toolkit/internal/visuals/primitive/primitive-visual.cpp
dali-toolkit/internal/visuals/primitive/primitive-visual.h
dali-toolkit/internal/visuals/svg/svg-visual.cpp
dali-toolkit/internal/visuals/svg/svg-visual.h
dali-toolkit/internal/visuals/text/text-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.h
dali-toolkit/internal/visuals/visual-base-impl.cpp
dali-toolkit/internal/visuals/visual-base-impl.h
dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp
dali-toolkit/internal/visuals/wireframe/wireframe-visual.h
dali-toolkit/public-api/controls/control-impl.cpp