Commit a97c94ece473b511a7ee02acbb729a59e6ba7aa2

Authored by Kingsley Stephens
2 parents e47588a2 11edf9dc

[dali_1.0.37] Merge branch 'tizen'

Change-Id: Ibae4f16083c08db218e766a8707b40548f5d6a95
Showing 67 changed files with 2287 additions and 2501 deletions
.gitignore
... ... @@ -35,3 +35,4 @@ dali-builder
35 35 *.creator.user
36 36 /build/desktop
37 37 /packaging/home*
  38 +*.mo
... ...
build/tizen/CMakeLists.txt
... ... @@ -20,15 +20,27 @@ SET(RESOURCE_DIR ${ROOT_SRC_DIR}/resources)
20 20 SET(LOCAL_IMAGES_DIR ${RESOURCE_DIR}/images)
21 21 SET(LOCAL_MODELS_DIR ${RESOURCE_DIR}/models)
22 22 SET(LOCAL_SCRIPTS_DIR ${RESOURCE_DIR}/scripts)
  23 +IF(NOT DEFINED LOCAL_STYLE_DIR)
  24 + SET(LOCAL_STYLE_DIR ${RESOURCE_DIR}/style)
  25 +ENDIF()
23 26  
24 27 SET(IMAGES_DIR ${APP_DATA_DIR}/images/)
25 28 SET(MODELS_DIR ${APP_DATA_DIR}/models/)
26 29 SET(SCRIPTS_DIR ${APP_DATA_DIR}/scripts/)
  30 +SET(STYLE_DIR ${APP_DATA_DIR}/style/)
  31 +
  32 +IF(NOT DEFINED LOCALE_DIR)
  33 + SET(LOCALE_DIR ${PREFIX}/share/locale)
  34 +ENDIF()
27 35  
28 36 SET(DALI_IMAGE_DIR \\"${IMAGES_DIR}\\")
29 37 SET(DALI_MODEL_DIR \\"${MODELS_DIR}\\")
30 38 SET(DALI_SCRIPT_DIR \\"${SCRIPTS_DIR}\\")
  39 +SET(DALI_STYLE_DIR \\"${STYLE_DIR}\\")
  40 +SET(DALI_DEMO_THEME_PATH \\"${STYLE_DIR}/demo-theme.json\\")
31 41 SET(DALI_EXAMPLE_BIN \\"${BINDIR}/\\")
  42 +SET(DALI_LOCALE_DIR \\"${LOCALE_DIR}\\")
  43 +SET(DALI_LANG \\"${LANG}\\")
32 44  
33 45 FILE(GLOB LOCAL_IMAGES_PNG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
34 46 FILE(GLOB LOCAL_IMAGES_JPG RELATIVE "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
... ... @@ -52,6 +64,8 @@ FOREACH(flag ${LOCAL_SCRIPTS_LIST})
52 64 INSTALL(FILES ${LOCAL_SCRIPTS_DIR}/${flag} DESTINATION ${SCRIPTS_DIR})
53 65 ENDFOREACH(flag)
54 66  
  67 +INSTALL(FILES ${LOCAL_STYLE_DIR}/demo-theme.json DESTINATION ${STYLE_DIR})
  68 +
55 69 SET(PKG_LIST dali
56 70 dali-toolkit)
57 71  
... ... @@ -62,7 +76,7 @@ FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
62 76 SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
63 77 ENDFOREACH(flag)
64 78  
65   -SET(DALI_DEMO_CFLAGS "-DDALI_IMAGE_DIR=${DALI_IMAGE_DIR} -DDALI_MODEL_DIR=${DALI_MODEL_DIR} -DDALI_SCRIPT_DIR=${DALI_SCRIPT_DIR} -DDALI_EXAMPLE_BIN=${DALI_EXAMPLE_BIN} -fvisibility=hidden -DHIDE_DALI_INTERNALS")
  79 +SET(DALI_DEMO_CFLAGS "-DDALI_IMAGE_DIR=${DALI_IMAGE_DIR} -DDALI_MODEL_DIR=${DALI_MODEL_DIR} -DDALI_SCRIPT_DIR=${DALI_SCRIPT_DIR} -DDALI_DEMO_THEME_PATH=${DALI_DEMO_THEME_PATH} -DDALI_EXAMPLE_BIN=${DALI_EXAMPLE_BIN} -DDALI_LOCALE_DIR=${DALI_LOCALE_DIR} -fvisibility=hidden -DHIDE_DALI_INTERNALS -DDALI_LANG=${DALI_LANG}")
66 80  
67 81 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${REQUIRED_CFLAGS} ${DALI_DEMO_CFLAGS} -Werror -Wall")
68 82 SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}")
... ...
build/tizen/demo/CMakeLists.txt
... ... @@ -6,3 +6,27 @@ ADD_EXECUTABLE(${PROJECT_NAME} ${DEMO_SRCS})
6 6 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${REQUIRED_PKGS_LDFLAGS})
7 7  
8 8 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
  9 +
  10 +# Internationalization
  11 +
  12 +SET(PO_DIR ${DEMO_SRC_DIR}/po)
  13 +
  14 +FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po")
  15 +
  16 +SET(MSGFMT "/usr/bin/msgfmt")
  17 +
  18 +FOREACH(PO_FILE ${PO_FILES})
  19 + SET(PO_FILE ${PO_DIR}/${PO_FILE})
  20 + MESSAGE("PO: ${PO_FILE}")
  21 + GET_FILENAME_COMPONENT(ABS_PO_FILE ${PO_FILE} ABSOLUTE)
  22 + GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE)
  23 + SET(MO_FILE ${PO_DIR}/${lang}.mo)
  24 + ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE}
  25 + COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE}
  26 + DEPENDS ${ABS_PO_FILE})
  27 + INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
  28 + SET(MO_FILES ${MO_FILES} ${MO_FILE})
  29 +ENDFOREACH(PO_FILE)
  30 +
  31 +MESSAGE(".mo files: ${MO_FILES}")
  32 +ADD_CUSTOM_TARGET(po ALL DEPENDS ${MO_FILES})
... ...
build/tizen/docs/.gitignore deleted
1   -doxygen-errors.txt
build/tizen/docs/dali.doxy.in deleted
1   -# Doxyfile 1.5.8
2   -
3   -# This file describes the settings to be used by the documentation system
4   -# doxygen (www.doxygen.org) for a project
5   -#
6   -# All text after a hash (#) is considered a comment and will be ignored
7   -# The format is:
8   -# TAG = value [value, ...]
9   -# For lists items can also be appended using:
10   -# TAG += value [value, ...]
11   -# Values that contain spaces should be placed between quotes (" ")
12   -
13   -#---------------------------------------------------------------------------
14   -# Project related configuration options
15   -#---------------------------------------------------------------------------
16   -
17   -# This tag specifies the encoding used for all characters in the config file
18   -# that follow. The default is UTF-8 which is also the encoding used for all
19   -# text before the first occurrence of this tag. Doxygen uses libiconv (or the
20   -# iconv built into libc) for the transcoding. See
21   -# http://www.gnu.org/software/libiconv for the list of possible encodings.
22   -
23   -DOXYFILE_ENCODING = UTF-8
24   -
25   -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
26   -# by quotes) that should identify the project.
27   -
28   -PROJECT_NAME = Dali
29   -
30   -# The PROJECT_NUMBER tag can be used to enter a project or revision number.
31   -# This could be handy for archiving the generated documentation or
32   -# if some version control system is used.
33   -
34   -PROJECT_NUMBER =
35   -
36   -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
37   -# base path where the generated documentation will be put.
38   -# If a relative path is entered, it will be relative to the location
39   -# where doxygen was started. If left blank the current directory will be used.
40   -
41   -OUTPUT_DIRECTORY = @DOXYGEN_DOCS_DIR@/generated
42   -
43   -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
44   -# 4096 sub-directories (in 2 levels) under the output directory of each output
45   -# format and will distribute the generated files over these directories.
46   -# Enabling this option can be useful when feeding doxygen a huge amount of
47   -# source files, where putting all generated files in the same directory would
48   -# otherwise cause performance problems for the file system.
49   -
50   -CREATE_SUBDIRS = NO
51   -
52   -# The OUTPUT_LANGUAGE tag is used to specify the language in which all
53   -# documentation generated by doxygen is written. Doxygen will use this
54   -# information to generate all constant output in the proper language.
55   -# The default language is English, other supported languages are:
56   -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
57   -# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
58   -# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
59   -# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
60   -# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene,
61   -# Spanish, Swedish, and Ukrainian.
62   -
63   -OUTPUT_LANGUAGE = English
64   -
65   -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
66   -# include brief member descriptions after the members that are listed in
67   -# the file and class documentation (similar to JavaDoc).
68   -# Set to NO to disable this.
69   -
70   -BRIEF_MEMBER_DESC = YES
71   -
72   -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
73   -# the brief description of a member or function before the detailed description.
74   -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
75   -# brief descriptions will be completely suppressed.
76   -
77   -REPEAT_BRIEF = YES
78   -
79   -# This tag implements a quasi-intelligent brief description abbreviator
80   -# that is used to form the text in various listings. Each string
81   -# in this list, if found as the leading text of the brief description, will be
82   -# stripped from the text and the result after processing the whole list, is
83   -# used as the annotated text. Otherwise, the brief description is used as-is.
84   -# If left blank, the following values are used ("$name" is automatically
85   -# replaced with the name of the entity): "The $name class" "The $name widget"
86   -# "The $name file" "is" "provides" "specifies" "contains"
87   -# "represents" "a" "an" "the"
88   -
89   -ABBREVIATE_BRIEF = "The $name class" \
90   - "The $name widget" \
91   - "The $name file" \
92   - is \
93   - provides \
94   - specifies \
95   - contains \
96   - represents \
97   - a \
98   - an \
99   - the
100   -
101   -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
102   -# Doxygen will generate a detailed section even if there is only a brief
103   -# description.
104   -
105   -ALWAYS_DETAILED_SEC = NO
106   -
107   -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
108   -# inherited members of a class in the documentation of that class as if those
109   -# members were ordinary class members. Constructors, destructors and assignment
110   -# operators of the base classes will not be shown.
111   -
112   -INLINE_INHERITED_MEMB = NO
113   -
114   -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
115   -# path before files name in the file list and in the header files. If set
116   -# to NO the shortest path that makes the file name unique will be used.
117   -
118   -FULL_PATH_NAMES = YES
119   -
120   -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
121   -# can be used to strip a user-defined part of the path. Stripping is
122   -# only done if one of the specified strings matches the left-hand part of
123   -# the path. The tag can be used to show relative paths in the file list.
124   -# If left blank the directory from which doxygen is run is used as the
125   -# path to strip.
126   -
127   -STRIP_FROM_PATH = .
128   -
129   -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
130   -# the path mentioned in the documentation of a class, which tells
131   -# the reader which header file to include in order to use a class.
132   -# If left blank only the name of the header file containing the class
133   -# definition is used. Otherwise one should specify the include paths that
134   -# are normally passed to the compiler using the -I flag.
135   -
136   -STRIP_FROM_INC_PATH =
137   -
138   -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
139   -# (but less readable) file names. This can be useful is your file systems
140   -# doesn't support long names like on DOS, Mac, or CD-ROM.
141   -
142   -SHORT_NAMES = NO
143   -
144   -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
145   -# will interpret the first line (until the first dot) of a JavaDoc-style
146   -# comment as the brief description. If set to NO, the JavaDoc
147   -# comments will behave just like regular Qt-style comments
148   -# (thus requiring an explicit @brief command for a brief description.)
149   -
150   -JAVADOC_AUTOBRIEF = YES
151   -
152   -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
153   -# interpret the first line (until the first dot) of a Qt-style
154   -# comment as the brief description. If set to NO, the comments
155   -# will behave just like regular Qt-style comments (thus requiring
156   -# an explicit \brief command for a brief description.)
157   -
158   -QT_AUTOBRIEF = NO
159   -
160   -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
161   -# treat a multi-line C++ special comment block (i.e. a block of //! or ///
162   -# comments) as a brief description. This used to be the default behaviour.
163   -# The new default is to treat a multi-line C++ comment block as a detailed
164   -# description. Set this tag to YES if you prefer the old behaviour instead.
165   -
166   -MULTILINE_CPP_IS_BRIEF = NO
167   -
168   -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
169   -# member inherits the documentation from any documented member that it
170   -# re-implements.
171   -
172   -INHERIT_DOCS = YES
173   -
174   -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
175   -# a new page for each member. If set to NO, the documentation of a member will
176   -# be part of the file/class/namespace that contains it.
177   -
178   -SEPARATE_MEMBER_PAGES = NO
179   -
180   -# The TAB_SIZE tag can be used to set the number of spaces in a tab.
181   -# Doxygen uses this value to replace tabs by spaces in code fragments.
182   -
183   -TAB_SIZE = 2
184   -
185   -# This tag can be used to specify a number of aliases that acts
186   -# as commands in the documentation. An alias has the form "name=value".
187   -# For example adding "sideeffect=\par Side Effects:\n" will allow you to
188   -# put the command \sideeffect (or @sideeffect) in the documentation, which
189   -# will result in a user-defined paragraph with heading "Side Effects:".
190   -# You can put \n's in the value part of an alias to insert newlines.
191   -
192   -ALIASES =
193   -
194   -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
195   -# sources only. Doxygen will then generate output that is more tailored for C.
196   -# For instance, some of the names that are used will be different. The list
197   -# of all members will be omitted, etc.
198   -
199   -OPTIMIZE_OUTPUT_FOR_C = NO
200   -
201   -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
202   -# sources only. Doxygen will then generate output that is more tailored for
203   -# Java. For instance, namespaces will be presented as packages, qualified
204   -# scopes will look different, etc.
205   -
206   -OPTIMIZE_OUTPUT_JAVA = NO
207   -
208   -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
209   -# sources only. Doxygen will then generate output that is more tailored for
210   -# Fortran.
211   -
212   -OPTIMIZE_FOR_FORTRAN = NO
213   -
214   -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
215   -# sources. Doxygen will then generate output that is tailored for
216   -# VHDL.
217   -
218   -OPTIMIZE_OUTPUT_VHDL = NO
219   -
220   -# Doxygen selects the parser to use depending on the extension of the files it parses.
221   -# With this tag you can assign which parser to use for a given extension.
222   -# Doxygen has a built-in mapping, but you can override or extend it using this tag.
223   -# The format is ext=language, where ext is a file extension, and language is one of
224   -# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
225   -# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
226   -# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
227   -# use: inc=Fortran f=C
228   -
229   -EXTENSION_MAPPING =
230   -
231   -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
232   -# to include (a tag file for) the STL sources as input, then you should
233   -# set this tag to YES in order to let doxygen match functions declarations and
234   -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
235   -# func(std::string) {}). This also make the inheritance and collaboration
236   -# diagrams that involve STL classes more complete and accurate.
237   -
238   -BUILTIN_STL_SUPPORT = YES
239   -
240   -# If you use Microsoft's C++/CLI language, you should set this option to YES to
241   -# enable parsing support.
242   -
243   -CPP_CLI_SUPPORT = NO
244   -
245   -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
246   -# Doxygen will parse them like normal C++ but will assume all classes use public
247   -# instead of private inheritance when no explicit protection keyword is present.
248   -
249   -SIP_SUPPORT = NO
250   -
251   -# For Microsoft's IDL there are propget and propput attributes to indicate getter
252   -# and setter methods for a property. Setting this option to YES (the default)
253   -# will make doxygen to replace the get and set methods by a property in the
254   -# documentation. This will only work if the methods are indeed getting or
255   -# setting a simple type. If this is not the case, or you want to show the
256   -# methods anyway, you should set this option to NO.
257   -
258   -IDL_PROPERTY_SUPPORT = YES
259   -
260   -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
261   -# tag is set to YES, then doxygen will reuse the documentation of the first
262   -# member in the group (if any) for the other members of the group. By default
263   -# all members of a group must be documented explicitly.
264   -
265   -DISTRIBUTE_GROUP_DOC = NO
266   -
267   -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
268   -# the same type (for instance a group of public functions) to be put as a
269   -# subgroup of that type (e.g. under the Public Functions section). Set it to
270   -# NO to prevent subgrouping. Alternatively, this can be done per class using
271   -# the \nosubgrouping command.
272   -
273   -SUBGROUPING = YES
274   -
275   -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
276   -# is documented as struct, union, or enum with the name of the typedef. So
277   -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
278   -# with name TypeT. When disabled the typedef will appear as a member of a file,
279   -# namespace, or class. And the struct will be named TypeS. This can typically
280   -# be useful for C code in case the coding convention dictates that all compound
281   -# types are typedef'ed and only the typedef is referenced, never the tag name.
282   -
283   -TYPEDEF_HIDES_STRUCT = NO
284   -
285   -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
286   -# determine which symbols to keep in memory and which to flush to disk.
287   -# When the cache is full, less often used symbols will be written to disk.
288   -# For small to medium size projects (<1000 input files) the default value is
289   -# probably good enough. For larger projects a too small cache size can cause
290   -# doxygen to be busy swapping symbols to and from disk most of the time
291   -# causing a significant performance penality.
292   -# If the system has enough physical memory increasing the cache will improve the
293   -# performance by keeping more symbols in memory. Note that the value works on
294   -# a logarithmic scale so increasing the size by one will rougly double the
295   -# memory usage. The cache size is given by this formula:
296   -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
297   -# corresponding to a cache size of 2^16 = 65536 symbols
298   -
299   -SYMBOL_CACHE_SIZE = 0
300   -
301   -#---------------------------------------------------------------------------
302   -# Build related configuration options
303   -#---------------------------------------------------------------------------
304   -
305   -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
306   -# documentation are documented, even if no documentation was available.
307   -# Private class members and static file members will be hidden unless
308   -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
309   -
310   -EXTRACT_ALL = YES
311   -
312   -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
313   -# will be included in the documentation.
314   -
315   -EXTRACT_PRIVATE = YES
316   -
317   -# If the EXTRACT_STATIC tag is set to YES all static members of a file
318   -# will be included in the documentation.
319   -
320   -EXTRACT_STATIC = YES
321   -
322   -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
323   -# defined locally in source files will be included in the documentation.
324   -# If set to NO only classes defined in header files are included.
325   -
326   -EXTRACT_LOCAL_CLASSES = YES
327   -
328   -# This flag is only useful for Objective-C code. When set to YES local
329   -# methods, which are defined in the implementation section but not in
330   -# the interface are included in the documentation.
331   -# If set to NO (the default) only methods in the interface are included.
332   -
333   -EXTRACT_LOCAL_METHODS = NO
334   -
335   -# If this flag is set to YES, the members of anonymous namespaces will be
336   -# extracted and appear in the documentation as a namespace called
337   -# 'anonymous_namespace{file}', where file will be replaced with the base
338   -# name of the file that contains the anonymous namespace. By default
339   -# anonymous namespace are hidden.
340   -
341   -EXTRACT_ANON_NSPACES = NO
342   -
343   -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
344   -# undocumented members of documented classes, files or namespaces.
345   -# If set to NO (the default) these members will be included in the
346   -# various overviews, but no documentation section is generated.
347   -# This option has no effect if EXTRACT_ALL is enabled.
348   -
349   -HIDE_UNDOC_MEMBERS = NO
350   -
351   -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
352   -# undocumented classes that are normally visible in the class hierarchy.
353   -# If set to NO (the default) these classes will be included in the various
354   -# overviews. This option has no effect if EXTRACT_ALL is enabled.
355   -
356   -HIDE_UNDOC_CLASSES = NO
357   -
358   -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
359   -# friend (class|struct|union) declarations.
360   -# If set to NO (the default) these declarations will be included in the
361   -# documentation.
362   -
363   -HIDE_FRIEND_COMPOUNDS = NO
364   -
365   -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
366   -# documentation blocks found inside the body of a function.
367   -# If set to NO (the default) these blocks will be appended to the
368   -# function's detailed documentation block.
369   -
370   -HIDE_IN_BODY_DOCS = NO
371   -
372   -# The INTERNAL_DOCS tag determines if documentation
373   -# that is typed after a \internal command is included. If the tag is set
374   -# to NO (the default) then the documentation will be excluded.
375   -# Set it to YES to include the internal documentation.
376   -
377   -INTERNAL_DOCS = NO
378   -
379   -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
380   -# file names in lower-case letters. If set to YES upper-case letters are also
381   -# allowed. This is useful if you have classes or files whose names only differ
382   -# in case and if your file system supports case sensitive file names. Windows
383   -# and Mac users are advised to set this option to NO.
384   -
385   -CASE_SENSE_NAMES = NO
386   -
387   -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
388   -# will show members with their full class and namespace scopes in the
389   -# documentation. If set to YES the scope will be hidden.
390   -
391   -HIDE_SCOPE_NAMES = NO
392   -
393   -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
394   -# will put a list of the files that are included by a file in the documentation
395   -# of that file.
396   -
397   -SHOW_INCLUDE_FILES = YES
398   -
399   -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
400   -# is inserted in the documentation for inline members.
401   -
402   -INLINE_INFO = YES
403   -
404   -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
405   -# will sort the (detailed) documentation of file and class members
406   -# alphabetically by member name. If set to NO the members will appear in
407   -# declaration order.
408   -
409   -SORT_MEMBER_DOCS = YES
410   -
411   -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
412   -# brief documentation of file, namespace and class members alphabetically
413   -# by member name. If set to NO (the default) the members will appear in
414   -# declaration order.
415   -
416   -SORT_BRIEF_DOCS = NO
417   -
418   -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
419   -# hierarchy of group names into alphabetical order. If set to NO (the default)
420   -# the group names will appear in their defined order.
421   -
422   -SORT_GROUP_NAMES = NO
423   -
424   -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
425   -# sorted by fully-qualified names, including namespaces. If set to
426   -# NO (the default), the class list will be sorted only by class name,
427   -# not including the namespace part.
428   -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
429   -# Note: This option applies only to the class list, not to the
430   -# alphabetical list.
431   -
432   -SORT_BY_SCOPE_NAME = NO
433   -
434   -# The GENERATE_TODOLIST tag can be used to enable (YES) or
435   -# disable (NO) the todo list. This list is created by putting \todo
436   -# commands in the documentation.
437   -
438   -GENERATE_TODOLIST = NO
439   -
440   -# The GENERATE_TESTLIST tag can be used to enable (YES) or
441   -# disable (NO) the test list. This list is created by putting \test
442   -# commands in the documentation.
443   -
444   -GENERATE_TESTLIST = NO
445   -
446   -# The GENERATE_BUGLIST tag can be used to enable (YES) or
447   -# disable (NO) the bug list. This list is created by putting \bug
448   -# commands in the documentation.
449   -
450   -GENERATE_BUGLIST = NO
451   -
452   -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
453   -# disable (NO) the deprecated list. This list is created by putting
454   -# \deprecated commands in the documentation.
455   -
456   -GENERATE_DEPRECATEDLIST= YES
457   -
458   -# The ENABLED_SECTIONS tag can be used to enable conditional
459   -# documentation sections, marked by \if sectionname ... \endif.
460   -
461   -ENABLED_SECTIONS =
462   -
463   -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
464   -# the initial value of a variable or define consists of for it to appear in
465   -# the documentation. If the initializer consists of more lines than specified
466   -# here it will be hidden. Use a value of 0 to hide initializers completely.
467   -# The appearance of the initializer of individual variables and defines in the
468   -# documentation can be controlled using \showinitializer or \hideinitializer
469   -# command in the documentation regardless of this setting.
470   -
471   -MAX_INITIALIZER_LINES = 30
472   -
473   -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
474   -# at the bottom of the documentation of classes and structs. If set to YES the
475   -# list will mention the files that were used to generate the documentation.
476   -
477   -SHOW_USED_FILES = YES
478   -
479   -# If the sources in your project are distributed over multiple directories
480   -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
481   -# in the documentation. The default is NO.
482   -
483   -SHOW_DIRECTORIES = YES
484   -
485   -# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
486   -# This will remove the Files entry from the Quick Index and from the
487   -# Folder Tree View (if specified). The default is YES.
488   -
489   -SHOW_FILES = YES
490   -
491   -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
492   -# Namespaces page. This will remove the Namespaces entry from the Quick Index
493   -# and from the Folder Tree View (if specified). The default is YES.
494   -
495   -SHOW_NAMESPACES = YES
496   -
497   -# The FILE_VERSION_FILTER tag can be used to specify a program or script that
498   -# doxygen should invoke to get the current version for each file (typically from
499   -# the version control system). Doxygen will invoke the program by executing (via
500   -# popen()) the command <command> <input-file>, where <command> is the value of
501   -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
502   -# provided by doxygen. Whatever the program writes to standard output
503   -# is used as the file version. See the manual for examples.
504   -
505   -FILE_VERSION_FILTER =
506   -
507   -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
508   -# doxygen. The layout file controls the global structure of the generated output files
509   -# in an output format independent way. The create the layout file that represents
510   -# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
511   -# file name after the option, if omitted DoxygenLayout.xml will be used as the name
512   -# of the layout file.
513   -
514   -LAYOUT_FILE = @DOXYGEN_DOCS_DIR@/DaliLayout.xml
515   -
516   -#---------------------------------------------------------------------------
517   -# configuration options related to warning and progress messages
518   -#---------------------------------------------------------------------------
519   -
520   -# The QUIET tag can be used to turn on/off the messages that are generated
521   -# by doxygen. Possible values are YES and NO. If left blank NO is used.
522   -
523   -QUIET = YES
524   -
525   -# The WARNINGS tag can be used to turn on/off the warning messages that are
526   -# generated by doxygen. Possible values are YES and NO. If left blank
527   -# NO is used.
528   -
529   -WARNINGS = YES
530   -
531   -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
532   -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
533   -# automatically be disabled.
534   -
535   -WARN_IF_UNDOCUMENTED = YES
536   -
537   -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
538   -# potential errors in the documentation, such as not documenting some
539   -# parameters in a documented function, or documenting parameters that
540   -# don't exist or using markup commands wrongly.
541   -
542   -WARN_IF_DOC_ERROR = YES
543   -
544   -# This WARN_NO_PARAMDOC option can be abled to get warnings for
545   -# functions that are documented, but have no documentation for their parameters
546   -# or return value. If set to NO (the default) doxygen will only warn about
547   -# wrong or incomplete parameter documentation, but not about the absence of
548   -# documentation.
549   -
550   -WARN_NO_PARAMDOC = YES
551   -
552   -# The WARN_FORMAT tag determines the format of the warning messages that
553   -# doxygen can produce. The string should contain the $file, $line, and $text
554   -# tags, which will be replaced by the file and line number from which the
555   -# warning originated and the warning text. Optionally the format may contain
556   -# $version, which will be replaced by the version of the file (if it could
557   -# be obtained via FILE_VERSION_FILTER)
558   -
559   -WARN_FORMAT = "$file:$line: $text"
560   -
561   -# The WARN_LOGFILE tag can be used to specify a file to which warning
562   -# and error messages should be written. If left blank the output is written
563   -# to stderr.
564   -
565   -WARN_LOGFILE =
566   -
567   -#---------------------------------------------------------------------------
568   -# configuration options related to the input files
569   -#---------------------------------------------------------------------------
570   -
571   -# The INPUT tag can be used to specify the files and/or directories that contain
572   -# documented source files. You may enter file names like "myfile.cpp" or
573   -# directories like "/usr/src/myproject". Separate the files or directories
574   -# with spaces.
575   -
576   -INPUT = @DOXYGEN_DOCS_DIR@/content \
577   - @prefix@/include/dali/public-api \
578   - @prefix@/include/dali-toolkit/public-api
579   -
580   -
581   -# This tag can be used to specify the character encoding of the source files
582   -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
583   -# also the default input encoding. Doxygen uses libiconv (or the iconv built
584   -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
585   -# the list of possible encodings.
586   -
587   -INPUT_ENCODING = UTF-8
588   -
589   -# If the value of the INPUT tag contains directories, you can use the
590   -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
591   -# and *.h) to filter out the source-files in the directories. If left
592   -# blank the following patterns are tested:
593   -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
594   -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
595   -
596   -FILE_PATTERNS = *.c \
597   - *.cc \
598   - *.cxx \
599   - *.cpp \
600   - *.c++ \
601   - *.d \
602   - *.java \
603   - *.ii \
604   - *.ixx \
605   - *.ipp \
606   - *.i++ \
607   - *.inl \
608   - *.h \
609   - *.hh \
610   - *.hxx \
611   - *.hpp \
612   - *.h++ \
613   - *.idl \
614   - *.odl \
615   - *.cs \
616   - *.php \
617   - *.php3 \
618   - *.inc \
619   - *.m \
620   - *.mm \
621   - *.dox \
622   - *.py \
623   - *.f90 \
624   - *.f \
625   - *.vhd \
626   - *.vhdl
627   -
628   -# The RECURSIVE tag can be used to turn specify whether or not subdirectories
629   -# should be searched for input files as well. Possible values are YES and NO.
630   -# If left blank NO is used.
631   -
632   -RECURSIVE = YES
633   -
634   -# The EXCLUDE tag can be used to specify files and/or directories that should
635   -# excluded from the INPUT source files. This way you can easily exclude a
636   -# subdirectory from a directory tree whose root is specified with the INPUT tag.
637   -
638   -EXCLUDE = dali/integration-api
639   -
640   -
641   -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
642   -# directories that are symbolic links (a Unix filesystem feature) are excluded
643   -# from the input.
644   -
645   -EXCLUDE_SYMLINKS = NO
646   -
647   -# If the value of the INPUT tag contains directories, you can use the
648   -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
649   -# certain files from those directories. Note that the wildcards are matched
650   -# against the file with absolute path, so to exclude all test directories
651   -# for example use the pattern */test/*
652   -
653   -EXCLUDE_PATTERNS =
654   -
655   -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
656   -# (namespaces, classes, functions, etc.) that should be excluded from the
657   -# output. The symbol name can be a fully qualified name, a word, or if the
658   -# wildcard * is used, a substring. Examples: ANamespace, AClass,
659   -# AClass::ANamespace, ANamespace::*Test
660   -
661   -EXCLUDE_SYMBOLS = DaliInternal \
662   - Dali::Internal \
663   - Dali::Integration \
664   - Impl \
665   - ApplicationImpl
666   -
667   -# The EXAMPLE_PATH tag can be used to specify one or more files or
668   -# directories that contain example code fragments that are included (see
669   -# the \include command).
670   -
671   -EXAMPLE_PATH = @DOXYGEN_ROOT_DIR@/examples
672   -
673   -# If the value of the EXAMPLE_PATH tag contains directories, you can use the
674   -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
675   -# and *.h) to filter out the source-files in the directories. If left
676   -# blank all files are included.
677   -
678   -EXAMPLE_PATTERNS = *
679   -
680   -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
681   -# searched for input files to be used with the \include or \dontinclude
682   -# commands irrespective of the value of the RECURSIVE tag.
683   -# Possible values are YES and NO. If left blank NO is used.
684   -
685   -EXAMPLE_RECURSIVE = YES
686   -
687   -# The IMAGE_PATH tag can be used to specify one or more files or
688   -# directories that contain image that are included in the documentation (see
689   -# the \image command).
690   -
691   -IMAGE_PATH = @DOXYGEN_DOCS_DIR@/content/images
692   -
693   -# The INPUT_FILTER tag can be used to specify a program that doxygen should
694   -# invoke to filter for each input file. Doxygen will invoke the filter program
695   -# by executing (via popen()) the command <filter> <input-file>, where <filter>
696   -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
697   -# input file. Doxygen will then use the output that the filter program writes
698   -# to standard output. If FILTER_PATTERNS is specified, this tag will be
699   -# ignored.
700   -
701   -INPUT_FILTER =
702   -
703   -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
704   -# basis. Doxygen will compare the file name with each pattern and apply the
705   -# filter if there is a match. The filters are a list of the form:
706   -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
707   -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
708   -# is applied to all files.
709   -
710   -FILTER_PATTERNS =
711   -
712   -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
713   -# INPUT_FILTER) will be used to filter the input files when producing source
714   -# files to browse (i.e. when SOURCE_BROWSER is set to YES).
715   -
716   -FILTER_SOURCE_FILES = NO
717   -
718   -#---------------------------------------------------------------------------
719   -# configuration options related to source browsing
720   -#---------------------------------------------------------------------------
721   -
722   -# If the SOURCE_BROWSER tag is set to YES then a list of source files will
723   -# be generated. Documented entities will be cross-referenced with these sources.
724   -# Note: To get rid of all source code in the generated output, make sure also
725   -# VERBATIM_HEADERS is set to NO.
726   -
727   -SOURCE_BROWSER = YES
728   -
729   -# Setting the INLINE_SOURCES tag to YES will include the body
730   -# of functions and classes directly in the documentation.
731   -
732   -INLINE_SOURCES = NO
733   -
734   -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
735   -# doxygen to hide any special comment blocks from generated source code
736   -# fragments. Normal C and C++ comments will always remain visible.
737   -
738   -STRIP_CODE_COMMENTS = YES
739   -
740   -# If the REFERENCED_BY_RELATION tag is set to YES
741   -# then for each documented function all documented
742   -# functions referencing it will be listed.
743   -
744   -REFERENCED_BY_RELATION = NO
745   -
746   -# If the REFERENCES_RELATION tag is set to YES
747   -# then for each documented function all documented entities
748   -# called/used by that function will be listed.
749   -
750   -REFERENCES_RELATION = NO
751   -
752   -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
753   -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
754   -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
755   -# link to the source code. Otherwise they will link to the documentation.
756   -
757   -REFERENCES_LINK_SOURCE = YES
758   -
759   -# If the USE_HTAGS tag is set to YES then the references to source code
760   -# will point to the HTML generated by the htags(1) tool instead of doxygen
761   -# built-in source browser. The htags tool is part of GNU's global source
762   -# tagging system (see http://www.gnu.org/software/global/global.html). You
763   -# will need version 4.8.6 or higher.
764   -
765   -USE_HTAGS = NO
766   -
767   -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
768   -# will generate a verbatim copy of the header file for each class for
769   -# which an include is specified. Set to NO to disable this.
770   -
771   -VERBATIM_HEADERS = YES
772   -
773   -#---------------------------------------------------------------------------
774   -# configuration options related to the alphabetical class index
775   -#---------------------------------------------------------------------------
776   -
777   -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
778   -# of all compounds will be generated. Enable this if the project
779   -# contains a lot of classes, structs, unions or interfaces.
780   -
781   -ALPHABETICAL_INDEX = NO
782   -
783   -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
784   -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
785   -# in which this list will be split (can be a number in the range [1..20])
786   -
787   -COLS_IN_ALPHA_INDEX = 5
788   -
789   -# In case all classes in a project start with a common prefix, all
790   -# classes will be put under the same header in the alphabetical index.
791   -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
792   -# should be ignored while generating the index headers.
793   -
794   -IGNORE_PREFIX =
795   -
796   -#---------------------------------------------------------------------------
797   -# configuration options related to the HTML output
798   -#---------------------------------------------------------------------------
799   -
800   -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
801   -# generate HTML output.
802   -
803   -GENERATE_HTML = YES
804   -
805   -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
806   -# If a relative path is entered the value of OUTPUT_DIRECTORY will be
807   -# put in front of it. If left blank `html' will be used as the default path.
808   -
809   -HTML_OUTPUT = html
810   -
811   -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
812   -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
813   -# doxygen will generate files with .html extension.
814   -
815   -HTML_FILE_EXTENSION = .html
816   -
817   -# The HTML_HEADER tag can be used to specify a personal HTML header for
818   -# each generated HTML page. If it is left blank doxygen will generate a
819   -# standard header.
820   -
821   -HTML_HEADER =
822   -
823   -# The HTML_FOOTER tag can be used to specify a personal HTML footer for
824   -# each generated HTML page. If it is left blank doxygen will generate a
825   -# standard footer.
826   -
827   -HTML_FOOTER = @DOXYGEN_DOCS_DIR@/api_footer.html
828   -
829   -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
830   -# style sheet that is used by each HTML page. It can be used to
831   -# fine-tune the look of the HTML output. If the tag is left blank doxygen
832   -# will generate a default style sheet. Note that doxygen will try to copy
833   -# the style sheet file to the HTML output directory, so don't put your own
834   -# stylesheet in the HTML output directory as well, or it will be erased!
835   -
836   -HTML_STYLESHEET =
837   -
838   -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
839   -# files or namespaces will be aligned in HTML using tables. If set to
840   -# NO a bullet list will be used.
841   -
842   -HTML_ALIGN_MEMBERS = YES
843   -
844   -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
845   -# documentation will contain sections that can be hidden and shown after the
846   -# page has loaded. For this to work a browser that supports
847   -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
848   -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
849   -
850   -HTML_DYNAMIC_SECTIONS = NO
851   -
852   -# If the GENERATE_DOCSET tag is set to YES, additional index files
853   -# will be generated that can be used as input for Apple's Xcode 3
854   -# integrated development environment, introduced with OSX 10.5 (Leopard).
855   -# To create a documentation set, doxygen will generate a Makefile in the
856   -# HTML output directory. Running make will produce the docset in that
857   -# directory and running "make install" will install the docset in
858   -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
859   -# it at startup.
860   -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
861   -
862   -GENERATE_DOCSET = NO
863   -
864   -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
865   -# feed. A documentation feed provides an umbrella under which multiple
866   -# documentation sets from a single provider (such as a company or product suite)
867   -# can be grouped.
868   -
869   -DOCSET_FEEDNAME = "Doxygen generated docs"
870   -
871   -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
872   -# should uniquely identify the documentation set bundle. This should be a
873   -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
874   -# will append .docset to the name.
875   -
876   -DOCSET_BUNDLE_ID = org.doxygen.Project
877   -
878   -# If the GENERATE_HTMLHELP tag is set to YES, additional index files
879   -# will be generated that can be used as input for tools like the
880   -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
881   -# of the generated HTML documentation.
882   -
883   -GENERATE_HTMLHELP = YES
884   -
885   -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
886   -# be used to specify the file name of the resulting .chm file. You
887   -# can add a path in front of the file if the result should not be
888   -# written to the html output directory.
889   -
890   -CHM_FILE = dali.chm
891   -
892   -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
893   -# be used to specify the location (absolute path including file name) of
894   -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
895   -# the HTML help compiler on the generated index.hhp.
896   -
897   -HHC_LOCATION =
898   -
899   -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
900   -# controls if a separate .chi index file is generated (YES) or that
901   -# it should be included in the master .chm file (NO).
902   -
903   -GENERATE_CHI = NO
904   -
905   -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
906   -# is used to encode HtmlHelp index (hhk), content (hhc) and project file
907   -# content.
908   -
909   -CHM_INDEX_ENCODING =
910   -
911   -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
912   -# controls whether a binary table of contents is generated (YES) or a
913   -# normal table of contents (NO) in the .chm file.
914   -
915   -BINARY_TOC = NO
916   -
917   -# The TOC_EXPAND flag can be set to YES to add extra items for group members
918   -# to the contents of the HTML help documentation and to the tree view.
919   -
920   -TOC_EXPAND = NO
921   -
922   -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
923   -# are set, an additional index file will be generated that can be used as input for
924   -# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
925   -# HTML documentation.
926   -
927   -GENERATE_QHP = NO
928   -
929   -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
930   -# be used to specify the file name of the resulting .qch file.
931   -# The path specified is relative to the HTML output folder.
932   -
933   -QCH_FILE =
934   -
935   -# The QHP_NAMESPACE tag specifies the namespace to use when generating
936   -# Qt Help Project output. For more information please see
937   -# http://doc.trolltech.com/qthelpproject.html#namespace
938   -
939   -QHP_NAMESPACE =
940   -
941   -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
942   -# Qt Help Project output. For more information please see
943   -# http://doc.trolltech.com/qthelpproject.html#virtual-folders
944   -
945   -QHP_VIRTUAL_FOLDER = doc
946   -
947   -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
948   -# For more information please see
949   -# http://doc.trolltech.com/qthelpproject.html#custom-filters
950   -
951   -QHP_CUST_FILTER_NAME =
952   -
953   -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
954   -# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
955   -
956   -QHP_CUST_FILTER_ATTRS =
957   -
958   -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
959   -# filter section matches.
960   -# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
961   -
962   -QHP_SECT_FILTER_ATTRS =
963   -
964   -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
965   -# be used to specify the location of Qt's qhelpgenerator.
966   -# If non-empty doxygen will try to run qhelpgenerator on the generated
967   -# .qhp file.
968   -
969   -QHG_LOCATION =
970   -
971   -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
972   -# top of each HTML page. The value NO (the default) enables the index and
973   -# the value YES disables it.
974   -
975   -DISABLE_INDEX = NO
976   -
977   -# This tag can be used to set the number of enum values (range [1..20])
978   -# that doxygen will group on one line in the generated HTML documentation.
979   -
980   -ENUM_VALUES_PER_LINE = 4
981   -
982   -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
983   -# structure should be generated to display hierarchical information.
984   -# If the tag value is set to FRAME, a side panel will be generated
985   -# containing a tree-like index structure (just like the one that
986   -# is generated for HTML Help). For this to work a browser that supports
987   -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
988   -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
989   -# probably better off using the HTML help feature. Other possible values
990   -# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
991   -# and Class Hierarchy pages using a tree view instead of an ordered list;
992   -# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
993   -# disables this behavior completely. For backwards compatibility with previous
994   -# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
995   -# respectively.
996   -
997   -GENERATE_TREEVIEW = NONE
998   -
999   -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
1000   -# used to set the initial width (in pixels) of the frame in which the tree
1001   -# is shown.
1002   -
1003   -TREEVIEW_WIDTH = 250
1004   -
1005   -# Use this tag to change the font size of Latex formulas included
1006   -# as images in the HTML documentation. The default is 10. Note that
1007   -# when you change the font size after a successful doxygen run you need
1008   -# to manually remove any form_*.png images from the HTML output directory
1009   -# to force them to be regenerated.
1010   -
1011   -FORMULA_FONTSIZE = 10
1012   -
1013   -#---------------------------------------------------------------------------
1014   -# configuration options related to the LaTeX output
1015   -#---------------------------------------------------------------------------
1016   -
1017   -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
1018   -# generate Latex output.
1019   -
1020   -GENERATE_LATEX = NO
1021   -
1022   -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
1023   -# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1024   -# put in front of it. If left blank `latex' will be used as the default path.
1025   -
1026   -LATEX_OUTPUT = latex
1027   -
1028   -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1029   -# invoked. If left blank `latex' will be used as the default command name.
1030   -
1031   -LATEX_CMD_NAME = latex
1032   -
1033   -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
1034   -# generate index for LaTeX. If left blank `makeindex' will be used as the
1035   -# default command name.
1036   -
1037   -MAKEINDEX_CMD_NAME = makeindex
1038   -
1039   -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
1040   -# LaTeX documents. This may be useful for small projects and may help to
1041   -# save some trees in general.
1042   -
1043   -COMPACT_LATEX = NO
1044   -
1045   -# The PAPER_TYPE tag can be used to set the paper type that is used
1046   -# by the printer. Possible values are: a4, a4wide, letter, legal and
1047   -# executive. If left blank a4wide will be used.
1048   -
1049   -PAPER_TYPE = a4wide
1050   -
1051   -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
1052   -# packages that should be included in the LaTeX output.
1053   -
1054   -EXTRA_PACKAGES =
1055   -
1056   -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
1057   -# the generated latex document. The header should contain everything until
1058   -# the first chapter. If it is left blank doxygen will generate a
1059   -# standard header. Notice: only use this tag if you know what you are doing!
1060   -
1061   -LATEX_HEADER =
1062   -
1063   -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
1064   -# is prepared for conversion to pdf (using ps2pdf). The pdf file will
1065   -# contain links (just like the HTML output) instead of page references
1066   -# This makes the output suitable for online browsing using a pdf viewer.
1067   -
1068   -PDF_HYPERLINKS = YES
1069   -
1070   -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
1071   -# plain latex in the generated Makefile. Set this option to YES to get a
1072   -# higher quality PDF documentation.
1073   -
1074   -USE_PDFLATEX = YES
1075   -
1076   -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
1077   -# command to the generated LaTeX files. This will instruct LaTeX to keep
1078   -# running if errors occur, instead of asking the user for help.
1079   -# This option is also used when generating formulas in HTML.
1080   -
1081   -LATEX_BATCHMODE = NO
1082   -
1083   -# If LATEX_HIDE_INDICES is set to YES then doxygen will not
1084   -# include the index chapters (such as File Index, Compound Index, etc.)
1085   -# in the output.
1086   -
1087   -LATEX_HIDE_INDICES = NO
1088   -
1089   -#---------------------------------------------------------------------------
1090   -# configuration options related to the RTF output
1091   -#---------------------------------------------------------------------------
1092   -
1093   -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
1094   -# The RTF output is optimized for Word 97 and may not look very pretty with
1095   -# other RTF readers or editors.
1096   -
1097   -GENERATE_RTF = NO
1098   -
1099   -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
1100   -# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1101   -# put in front of it. If left blank `rtf' will be used as the default path.
1102   -
1103   -RTF_OUTPUT = rtf
1104   -
1105   -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
1106   -# RTF documents. This may be useful for small projects and may help to
1107   -# save some trees in general.
1108   -
1109   -COMPACT_RTF = NO
1110   -
1111   -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
1112   -# will contain hyperlink fields. The RTF file will
1113   -# contain links (just like the HTML output) instead of page references.
1114   -# This makes the output suitable for online browsing using WORD or other
1115   -# programs which support those fields.
1116   -# Note: wordpad (write) and others do not support links.
1117   -
1118   -RTF_HYPERLINKS = NO
1119   -
1120   -# Load stylesheet definitions from file. Syntax is similar to doxygen's
1121   -# config file, i.e. a series of assignments. You only have to provide
1122   -# replacements, missing definitions are set to their default value.
1123   -
1124   -RTF_STYLESHEET_FILE =
1125   -
1126   -# Set optional variables used in the generation of an rtf document.
1127   -# Syntax is similar to doxygen's config file.
1128   -
1129   -RTF_EXTENSIONS_FILE =
1130   -
1131   -#---------------------------------------------------------------------------
1132   -# configuration options related to the man page output
1133   -#---------------------------------------------------------------------------
1134   -
1135   -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
1136   -# generate man pages
1137   -
1138   -GENERATE_MAN = NO
1139   -
1140   -# The MAN_OUTPUT tag is used to specify where the man pages will be put.
1141   -# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1142   -# put in front of it. If left blank `man' will be used as the default path.
1143   -
1144   -MAN_OUTPUT = man
1145   -
1146   -# The MAN_EXTENSION tag determines the extension that is added to
1147   -# the generated man pages (default is the subroutine's section .3)
1148   -
1149   -MAN_EXTENSION = .3
1150   -
1151   -# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
1152   -# then it will generate one additional man file for each entity
1153   -# documented in the real man page(s). These additional files
1154   -# only source the real man page, but without them the man command
1155   -# would be unable to find the correct page. The default is NO.
1156   -
1157   -MAN_LINKS = NO
1158   -
1159   -#---------------------------------------------------------------------------
1160   -# configuration options related to the XML output
1161   -#---------------------------------------------------------------------------
1162   -
1163   -# If the GENERATE_XML tag is set to YES Doxygen will
1164   -# generate an XML file that captures the structure of
1165   -# the code including all documentation.
1166   -
1167   -GENERATE_XML = NO
1168   -
1169   -# The XML_OUTPUT tag is used to specify where the XML pages will be put.
1170   -# If a relative path is entered the value of OUTPUT_DIRECTORY will be
1171   -# put in front of it. If left blank `xml' will be used as the default path.
1172   -
1173   -XML_OUTPUT = xml
1174   -
1175   -# The XML_SCHEMA tag can be used to specify an XML schema,
1176   -# which can be used by a validating XML parser to check the
1177   -# syntax of the XML files.
1178   -
1179   -XML_SCHEMA =
1180   -
1181   -# The XML_DTD tag can be used to specify an XML DTD,
1182   -# which can be used by a validating XML parser to check the
1183   -# syntax of the XML files.
1184   -
1185   -XML_DTD =
1186   -
1187   -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
1188   -# dump the program listings (including syntax highlighting
1189   -# and cross-referencing information) to the XML output. Note that
1190   -# enabling this will significantly increase the size of the XML output.
1191   -
1192   -XML_PROGRAMLISTING = YES
1193   -
1194   -#---------------------------------------------------------------------------
1195   -# configuration options for the AutoGen Definitions output
1196   -#---------------------------------------------------------------------------
1197   -
1198   -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
1199   -# generate an AutoGen Definitions (see autogen.sf.net) file
1200   -# that captures the structure of the code including all
1201   -# documentation. Note that this feature is still experimental
1202   -# and incomplete at the moment.
1203   -
1204   -GENERATE_AUTOGEN_DEF = NO
1205   -
1206   -#---------------------------------------------------------------------------
1207   -# configuration options related to the Perl module output
1208   -#---------------------------------------------------------------------------
1209   -
1210   -# If the GENERATE_PERLMOD tag is set to YES Doxygen will
1211   -# generate a Perl module file that captures the structure of
1212   -# the code including all documentation. Note that this
1213   -# feature is still experimental and incomplete at the
1214   -# moment.
1215   -
1216   -GENERATE_PERLMOD = NO
1217   -
1218   -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
1219   -# the necessary Makefile rules, Perl scripts and LaTeX code to be able
1220   -# to generate PDF and DVI output from the Perl module output.
1221   -
1222   -PERLMOD_LATEX = NO
1223   -
1224   -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
1225   -# nicely formatted so it can be parsed by a human reader. This is useful
1226   -# if you want to understand what is going on. On the other hand, if this
1227   -# tag is set to NO the size of the Perl module output will be much smaller
1228   -# and Perl will parse it just the same.
1229   -
1230   -PERLMOD_PRETTY = YES
1231   -
1232   -# The names of the make variables in the generated doxyrules.make file
1233   -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
1234   -# This is useful so different doxyrules.make files included by the same
1235   -# Makefile don't overwrite each other's variables.
1236   -
1237   -PERLMOD_MAKEVAR_PREFIX =
1238   -
1239   -#---------------------------------------------------------------------------
1240   -# Configuration options related to the preprocessor
1241   -#---------------------------------------------------------------------------
1242   -
1243   -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
1244   -# evaluate all C-preprocessor directives found in the sources and include
1245   -# files.
1246   -
1247   -ENABLE_PREPROCESSING = YES
1248   -
1249   -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
1250   -# names in the source code. If set to NO (the default) only conditional
1251   -# compilation will be performed. Macro expansion can be done in a controlled
1252   -# way by setting EXPAND_ONLY_PREDEF to YES.
1253   -
1254   -MACRO_EXPANSION = YES
1255   -
1256   -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
1257   -# then the macro expansion is limited to the macros specified with the
1258   -# PREDEFINED and EXPAND_AS_DEFINED tags.
1259   -
1260   -EXPAND_ONLY_PREDEF = YES
1261   -
1262   -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
1263   -# in the INCLUDE_PATH (see below) will be search if a #include is found.
1264   -
1265   -SEARCH_INCLUDES = YES
1266   -
1267   -# The INCLUDE_PATH tag can be used to specify one or more directories that
1268   -# contain include files that are not input files but should be processed by
1269   -# the preprocessor.
1270   -
1271   -INCLUDE_PATH =
1272   -
1273   -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1274   -# patterns (like *.h and *.hpp) to filter out the header-files in the
1275   -# directories. If left blank, the patterns specified with FILE_PATTERNS will
1276   -# be used.
1277   -
1278   -INCLUDE_FILE_PATTERNS =
1279   -
1280   -# The PREDEFINED tag can be used to specify one or more macro names that
1281   -# are defined before the preprocessor is started (similar to the -D option of
1282   -# gcc). The argument of the tag is a list of macros of the form: name
1283   -# or name=definition (no spaces). If the definition and the = are
1284   -# omitted =1 is assumed. To prevent a macro definition from being
1285   -# undefined via #undef or recursively expanded use the := operator
1286   -# instead of the = operator.
1287   -
1288   -PREDEFINED = DALI_IMPORT_API DALI_INTERNAL \
1289   - __attribute__ ((visibility ("default"))) \
1290   - __attribute__ ((visibility ("hidden")))
1291   -
1292   -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
1293   -# this tag can be used to specify a list of macro names that should be expanded.
1294   -# The macro definition that is found in the sources will be used.
1295   -# Use the PREDEFINED tag if you want to use a different macro definition.
1296   -
1297   -EXPAND_AS_DEFINED =
1298   -
1299   -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
1300   -# doxygen's preprocessor will remove all function-like macros that are alone
1301   -# on a line, have an all uppercase name, and do not end with a semicolon. Such
1302   -# function macros are typically used for boiler-plate code, and will confuse
1303   -# the parser if not removed.
1304   -
1305   -SKIP_FUNCTION_MACROS = YES
1306   -
1307   -#---------------------------------------------------------------------------
1308   -# Configuration::additions related to external references
1309   -#---------------------------------------------------------------------------
1310   -
1311   -# The TAGFILES option can be used to specify one or more tagfiles.
1312   -# Optionally an initial location of the external documentation
1313   -# can be added for each tagfile. The format of a tag file without
1314   -# this location is as follows:
1315   -# TAGFILES = file1 file2 ...
1316   -# Adding location for the tag files is done as follows:
1317   -# TAGFILES = file1=loc1 "file2 = loc2" ...
1318   -# where "loc1" and "loc2" can be relative or absolute paths or
1319   -# URLs. If a location is present for each tag, the installdox tool
1320   -# does not have to be run to correct the links.
1321   -# Note that each tag file must have a unique name
1322   -# (where the name does NOT include the path)
1323   -# If a tag file is not located in the directory in which doxygen
1324   -# is run, you must also specify the path to the tagfile here.
1325   -
1326   -TAGFILES =
1327   -
1328   -# When a file name is specified after GENERATE_TAGFILE, doxygen will create
1329   -# a tag file that is based on the input files it reads.
1330   -
1331   -GENERATE_TAGFILE =
1332   -
1333   -# If the ALLEXTERNALS tag is set to YES all external classes will be listed
1334   -# in the class index. If set to NO only the inherited external classes
1335   -# will be listed.
1336   -
1337   -ALLEXTERNALS = NO
1338   -
1339   -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
1340   -# in the modules index. If set to NO, only the current project's groups will
1341   -# be listed.
1342   -
1343   -EXTERNAL_GROUPS = YES
1344   -
1345   -# The PERL_PATH should be the absolute path and name of the perl script
1346   -# interpreter (i.e. the result of `which perl').
1347   -
1348   -PERL_PATH = /usr/bin/perl
1349   -
1350   -#---------------------------------------------------------------------------
1351   -# Configuration options related to the dot tool
1352   -#---------------------------------------------------------------------------
1353   -
1354   -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
1355   -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
1356   -# or super classes. Setting the tag to NO turns the diagrams off. Note that
1357   -# this option is superseded by the HAVE_DOT option below. This is only a
1358   -# fallback. It is recommended to install and use dot, since it yields more
1359   -# powerful graphs.
1360   -
1361   -CLASS_DIAGRAMS = YES
1362   -
1363   -# You can define message sequence charts within doxygen comments using the \msc
1364   -# command. Doxygen will then run the mscgen tool (see
1365   -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
1366   -# documentation. The MSCGEN_PATH tag allows you to specify the directory where
1367   -# the mscgen tool resides. If left empty the tool is assumed to be found in the
1368   -# default search path.
1369   -
1370   -MSCGEN_PATH =
1371   -
1372   -# If set to YES, the inheritance and collaboration graphs will hide
1373   -# inheritance and usage relations if the target is undocumented
1374   -# or is not a class.
1375   -
1376   -HIDE_UNDOC_RELATIONS = YES
1377   -
1378   -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
1379   -# available from the path. This tool is part of Graphviz, a graph visualization
1380   -# toolkit from AT&T and Lucent Bell Labs. The other options in this section
1381   -# have no effect if this option is set to NO (the default)
1382   -
1383   -HAVE_DOT = NO
1384   -
1385   -# By default doxygen will write a font called FreeSans.ttf to the output
1386   -# directory and reference it in all dot files that doxygen generates. This
1387   -# font does not include all possible unicode characters however, so when you need
1388   -# these (or just want a differently looking font) you can specify the font name
1389   -# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
1390   -# which can be done by putting it in a standard location or by setting the
1391   -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
1392   -# containing the font.
1393   -
1394   -DOT_FONTNAME = FreeSans
1395   -
1396   -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
1397   -# The default size is 10pt.
1398   -
1399   -DOT_FONTSIZE = 10
1400   -
1401   -# By default doxygen will tell dot to use the output directory to look for the
1402   -# FreeSans.ttf font (which doxygen will put there itself). If you specify a
1403   -# different font using DOT_FONTNAME you can set the path where dot
1404   -# can find it using this tag.
1405   -
1406   -DOT_FONTPATH =
1407   -
1408   -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
1409   -# will generate a graph for each documented class showing the direct and
1410   -# indirect inheritance relations. Setting this tag to YES will force the
1411   -# the CLASS_DIAGRAMS tag to NO.
1412   -
1413   -CLASS_GRAPH = YES
1414   -
1415   -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
1416   -# will generate a graph for each documented class showing the direct and
1417   -# indirect implementation dependencies (inheritance, containment, and
1418   -# class references variables) of the class with other documented classes.
1419   -
1420   -COLLABORATION_GRAPH = YES
1421   -
1422   -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
1423   -# will generate a graph for groups, showing the direct groups dependencies
1424   -
1425   -GROUP_GRAPHS = YES
1426   -
1427   -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
1428   -# collaboration diagrams in a style similar to the OMG's Unified Modeling
1429   -# Language.
1430   -
1431   -UML_LOOK = NO
1432   -
1433   -# If set to YES, the inheritance and collaboration graphs will show the
1434   -# relations between templates and their instances.
1435   -
1436   -TEMPLATE_RELATIONS = NO
1437   -
1438   -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
1439   -# tags are set to YES then doxygen will generate a graph for each documented
1440   -# file showing the direct and indirect include dependencies of the file with
1441   -# other documented files.
1442   -
1443   -INCLUDE_GRAPH = YES
1444   -
1445   -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
1446   -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
1447   -# documented header file showing the documented files that directly or
1448   -# indirectly include this file.
1449   -
1450   -INCLUDED_BY_GRAPH = YES
1451   -
1452   -# If the CALL_GRAPH and HAVE_DOT options are set to YES then
1453   -# doxygen will generate a call dependency graph for every global function
1454   -# or class method. Note that enabling this option will significantly increase
1455   -# the time of a run. So in most cases it will be better to enable call graphs
1456   -# for selected functions only using the \callgraph command.
1457   -
1458   -CALL_GRAPH = NO
1459   -
1460   -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
1461   -# doxygen will generate a caller dependency graph for every global function
1462   -# or class method. Note that enabling this option will significantly increase
1463   -# the time of a run. So in most cases it will be better to enable caller
1464   -# graphs for selected functions only using the \callergraph command.
1465   -
1466   -CALLER_GRAPH = NO
1467   -
1468   -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
1469   -# will graphical hierarchy of all classes instead of a textual one.
1470   -
1471   -GRAPHICAL_HIERARCHY = YES
1472   -
1473   -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
1474   -# then doxygen will show the dependencies a directory has on other directories
1475   -# in a graphical way. The dependency relations are determined by the #include
1476   -# relations between the files in the directories.
1477   -
1478   -DIRECTORY_GRAPH = YES
1479   -
1480   -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
1481   -# generated by dot. Possible values are png, jpg, or gif
1482   -# If left blank png will be used.
1483   -
1484   -DOT_IMAGE_FORMAT = png
1485   -
1486   -# The tag DOT_PATH can be used to specify the path where the dot tool can be
1487   -# found. If left blank, it is assumed the dot tool can be found in the path.
1488   -
1489   -DOT_PATH =
1490   -
1491   -# The DOTFILE_DIRS tag can be used to specify one or more directories that
1492   -# contain dot files that are included in the documentation (see the
1493   -# \dotfile command).
1494   -
1495   -DOTFILE_DIRS =
1496   -
1497   -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
1498   -# nodes that will be shown in the graph. If the number of nodes in a graph
1499   -# becomes larger than this value, doxygen will truncate the graph, which is
1500   -# visualized by representing a node as a red box. Note that doxygen if the
1501   -# number of direct children of the root node in a graph is already larger than
1502   -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
1503   -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
1504   -
1505   -DOT_GRAPH_MAX_NODES = 50
1506   -
1507   -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
1508   -# graphs generated by dot. A depth value of 3 means that only nodes reachable
1509   -# from the root by following a path via at most 3 edges will be shown. Nodes
1510   -# that lay further from the root node will be omitted. Note that setting this
1511   -# option to 1 or 2 may greatly reduce the computation time needed for large
1512   -# code bases. Also note that the size of a graph can be further restricted by
1513   -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
1514   -
1515   -MAX_DOT_GRAPH_DEPTH = 0
1516   -
1517   -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
1518   -# background. This is disabled by default, because dot on Windows does not
1519   -# seem to support this out of the box. Warning: Depending on the platform used,
1520   -# enabling this option may lead to badly anti-aliased labels on the edges of
1521   -# a graph (i.e. they become hard to read).
1522   -
1523   -DOT_TRANSPARENT = NO
1524   -
1525   -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
1526   -# files in one run (i.e. multiple -o and -T options on the command line). This
1527   -# makes dot run faster, but since only newer versions of dot (>1.8.10)
1528   -# support this, this feature is disabled by default.
1529   -
1530   -DOT_MULTI_TARGETS = NO
1531   -
1532   -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
1533   -# generate a legend page explaining the meaning of the various boxes and
1534   -# arrows in the dot generated graphs.
1535   -
1536   -GENERATE_LEGEND = YES
1537   -
1538   -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
1539   -# remove the intermediate dot files that are used to generate
1540   -# the various graphs.
1541   -
1542   -DOT_CLEANUP = YES
1543   -
1544   -#---------------------------------------------------------------------------
1545   -# Options related to the search engine
1546   -#---------------------------------------------------------------------------
1547   -
1548   -# When the SEARCHENGINE tag is enabled doxygen will generate a search box
1549   -# for the HTML output. The underlying search engine uses javascript
1550   -# and DHTML and should work on any modern browser. Note that when using
1551   -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
1552   -# (GENERATE_DOCSET) there is already a search function so this one should
1553   -# typically be disabled. For large projects the javascript based search engine
1554   -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
1555   -
1556   -SEARCHENGINE = NO
1557   -
1558   -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1559   -# implemented using a PHP enabled web server instead of at the web client
1560   -# using Javascript. Doxygen will generate the search PHP script and index
1561   -# file to put on the web server. The advantage of the server
1562   -# based approach is that it scales better to large projects and allows
1563   -# full text search. The disadvances is that it is more difficult to setup
1564   -# and does not have live searching capabilities.
1565   -
1566   -# SERVER_BASED_SEARCH = NO
com.samsung.dali-demo.xml
... ... @@ -73,8 +73,17 @@
73 73 <ui-application appid="buttons.example" exec="/usr/apps/com.samsung.dali-demo/bin/buttons.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
74 74 <label>Buttons</label>
75 75 </ui-application>
76   - <ui-application appid="text-view.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-view.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
77   - <label>Text View</label>
  76 + <ui-application appid="text-label.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-label.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
  77 + <label>Text Label</label>
  78 + </ui-application>
  79 + <ui-application appid="text-label-multi-language.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-label-multi-language.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
  80 + <label>Multi-language Text Label</label>
  81 + </ui-application>
  82 + <ui-application appid="text-label-emojis.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-label-emojis.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
  83 + <label>Emojis Text Label</label>
  84 + </ui-application>
  85 + <ui-application appid="text-field.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-field.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
  86 + <label>Text Label</label>
78 87 </ui-application>
79 88 <ui-application appid="logging.example" exec="/usr/apps/com.samsung.dali-demo/bin/logging.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
80 89 <label>Logging</label>
... ...
demo/dali-demo.cpp
... ... @@ -15,39 +15,53 @@
15 15 *
16 16 */
17 17  
  18 +// EXTERNAL INCLUDES
  19 +#include <dali/dali.h>
  20 +
  21 +// INTERNAL INCLUDES
18 22 #include "dali-table-view.h"
  23 +#include "shared/dali-demo-strings.h"
19 24  
20 25 using namespace Dali;
21 26  
22 27 int main(int argc, char **argv)
23 28 {
  29 + // Configure gettext for internalization
  30 + bindtextdomain(DALI_DEMO_DOMAIN_LOCAL, DALI_LOCALE_DIR);
  31 + textdomain(DALI_DEMO_DOMAIN_LOCAL);
  32 + setlocale(LC_ALL, DALI_LANG);
  33 +
24 34 Application app = Application::New(&argc, &argv);
25 35  
  36 + // Create the demo launcher
26 37 DaliTableView demo(app);
27 38  
28   - demo.AddExample(Example("bubble-effect.example", "Bubbles"));
29   - demo.AddExample(Example("blocks.example", "Blocks"));
30   - demo.AddExample(Example("cluster.example", "Cluster control"));
31   - demo.AddExample(Example("cube-transition-effect.example", "Cube Transition"));
32   - demo.AddExample(Example("dissolve-effect.example", "Dissolve Transition"));
33   - demo.AddExample(Example("item-view.example", "Item View"));
34   - demo.AddExample(Example("magnifier.example", "Magnifier"));
35   - demo.AddExample(Example("motion-blur.example", "Motion Blur"));
36   - demo.AddExample(Example("motion-stretch.example", "Motion Stretch"));
37   - demo.AddExample(Example("page-turn-view.example", "Page Turn View"));
38   - demo.AddExample(Example("radial-menu.example", "Radial Menu"));
39   - demo.AddExample(Example("refraction-effect.example", "Refraction"));
40   - demo.AddExample(Example("scroll-view.example", "Scroll View"));
41   - demo.AddExample(Example("shadow-bone-lighting.example", "Lights and shadows"));
42   -// demo.AddExample(Example("builder.example", "Script Based UI"));
43   - demo.AddExample(Example("image-scaling-irregular-grid.example", "Image Scaling Modes"));
44   - demo.AddExample(Example("text-view.example", "Text View"));
45   - demo.AddExample(Example("animated-shapes.example", "Animated Shapes"));
46   - demo.AddExample(Example("path-animation.example", "Path Animation"));
  39 + demo.AddExample(Example("bubble-effect.example", DALI_DEMO_STR_TITLE_BUBBLES));
  40 + demo.AddExample(Example("blocks.example", DALI_DEMO_STR_TITLE_BLOCKS));
  41 + demo.AddExample(Example("cluster.example", DALI_DEMO_STR_TITLE_CLUSTER));
  42 + demo.AddExample(Example("cube-transition-effect.example", DALI_DEMO_STR_TITLE_CUBE_TRANSITION));
  43 + demo.AddExample(Example("dissolve-effect.example", DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION));
  44 + demo.AddExample(Example("item-view.example", DALI_DEMO_STR_TITLE_ITEM_VIEW));
  45 + demo.AddExample(Example("magnifier.example", DALI_DEMO_STR_TITLE_MAGNIFIER));
  46 + demo.AddExample(Example("motion-blur.example", DALI_DEMO_STR_TITLE_MOTION_BLUR));
  47 + demo.AddExample(Example("motion-stretch.example", DALI_DEMO_STR_TITLE_MOTION_STRETCH));
  48 + demo.AddExample(Example("page-turn-view.example", DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW));
  49 + demo.AddExample(Example("radial-menu.example", DALI_DEMO_STR_TITLE_RADIAL_MENU));
  50 + demo.AddExample(Example("refraction-effect.example", DALI_DEMO_STR_TITLE_REFRACTION));
  51 + demo.AddExample(Example("scroll-view.example", DALI_DEMO_STR_TITLE_SCROLL_VIEW));
  52 + demo.AddExample(Example("shadow-bone-lighting.example", DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS));
  53 + demo.AddExample(Example("builder.example", DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI));
  54 + demo.AddExample(Example("image-scaling-irregular-grid.example", DALI_DEMO_STR_TITLE_IMAGE_SCALING));
  55 + demo.AddExample(Example("text-label.example", DALI_DEMO_STR_TITLE_TEXT_LABEL));
  56 + demo.AddExample(Example("text-label-multi-language.example", DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE));
  57 + demo.AddExample(Example("text-label-emojis.example", DALI_DEMO_STR_TITLE_EMOJI_TEXT));
  58 + demo.AddExample(Example("animated-shapes.example", DALI_DEMO_STR_TITLE_ANIMATED_SHAPES));
  59 + demo.AddExample(Example("path-animation.example", DALI_DEMO_STR_TITLE_PATH_ANIMATION));
47 60 demo.AddExample(Example("size-negotiation.example", "Size Negotiation"));
48 61  
49 62 demo.SortAlphabetically( true );
50 63  
  64 + // Start the event loop
51 65 app.MainLoop();
52 66  
53 67 return 0;
... ...
demo/dali-table-view.cpp
... ... @@ -86,17 +86,7 @@ const Vector2 POSITION_SWING_3DEFFECT( 0.55f, 0.4f ); ///&lt; Position
86 86 const Vector3 ANCHOR_3DEFFECT_STYLE0( -105.0f, 30.0f, -240.0f ); ///< Rotation Anchor position for 3D Effect (Style 0)
87 87 const Vector3 ANCHOR_3DEFFECT_STYLE1( 65.0f, -70.0f, -500.0f ); ///< Rotation Anchor position for 3D Effect (Style 1)
88 88  
89   -const std::string DEFAULT_TEXT_STYLE_FONT_FAMILY("HelveticaNeue");
90   -const std::string DEFAULT_TEXT_STYLE_FONT_STYLE("Regular");
91   -const Dali::PointSize DEFAULT_TEXT_STYLE_POINT_SIZE( 8.0f );
92   -const Dali::TextStyle::Weight DEFAULT_TEXT_STYLE_WEIGHT(Dali::TextStyle::REGULAR);
93   -const Dali::Vector4 DEFAULT_TEXT_STYLE_COLOR(0.7f, 0.7f, 0.7f, 1.0f);
94   -
95   -const std::string TABLE_TEXT_STYLE_FONT_FAMILY("HelveticaNeue");
96   -const std::string TABLE_TEXT_STYLE_FONT_STYLE("Regular");
97   -const Dali::PointSize TABLE_TEXT_STYLE_POINT_SIZE( 8.0f );
98   -const Dali::TextStyle::Weight TABLE_TEXT_STYLE_WEIGHT(Dali::TextStyle::LIGHT);
99   -const Dali::Vector4 TABLE_TEXT_STYLE_COLOR(0.0f, 0.0f, 0.0f, 1.0f);
  89 +const Dali::Vector4 TABLE_TEXT_STYLE_COLOR(0.0f, 0.0f, 0.0f, 1.0f);
100 90  
101 91 Vector3 ScalePointSize(const Vector3& vec)
102 92 {
... ... @@ -105,17 +95,6 @@ Vector3 ScalePointSize(const Vector3&amp; vec)
105 95  
106 96 #define DP(x) DemoHelper::ScalePointSize(x)
107 97  
108   -TextStyle GetTableTextStyle()
109   -{
110   - TextStyle textStyle;
111   - textStyle.SetFontName(TABLE_TEXT_STYLE_FONT_FAMILY);
112   - textStyle.SetFontStyle(TABLE_TEXT_STYLE_FONT_STYLE);
113   - textStyle.SetFontPointSize( Dali::PointSize(DemoHelper::ScalePointSize(TABLE_TEXT_STYLE_POINT_SIZE)));
114   - textStyle.SetWeight(TABLE_TEXT_STYLE_WEIGHT);
115   - textStyle.SetTextColor(TABLE_TEXT_STYLE_COLOR);
116   - return textStyle;
117   -}
118   -
119 98 /**
120 99 * Creates the background image
121 100 */
... ... @@ -151,20 +130,19 @@ public:
151 130 {
152 131 }
153 132  
154   - Vector3 operator()( const Vector3& current, const PropertyInput& scrollProperty, const PropertyInput& parentSize )
  133 + void operator()( Vector3& position, const PropertyInputContainer& inputs )
155 134 {
156   - Vector3 pos( current );
157   - const float parentHeight = parentSize.GetVector3().height;
  135 + const Vector3& parentSize = inputs[1]->GetVector3();
158 136  
159   - // Wrap bubbles vertically
160   - if( pos.y + mShapeSize * 0.5f < -parentHeight * 0.5f )
  137 + // Wrap bubbles verically.
  138 + if( position.y + mShapeSize * 0.5f < -parentSize.y * 0.5f )
161 139 {
162   - pos.y = parentHeight * 0.5f + mShapeSize * 0.5f;
  140 + position.y = parentSize.y * 0.5f + mShapeSize * 0.5f;
163 141 }
164 142  
165   - // Bubbles X position moves parallax to horizontal panning by a scale factor unique to each bubble
166   - pos.x = mInitialX + ( scrollProperty.GetVector3().x * mScale );
167   - return pos;
  143 + // Bubbles X position moves parallax to horizontal
  144 + // panning by a scale factor unique to each bubble.
  145 + position.x = mInitialX + ( inputs[0]->GetVector3().x * mScale );
168 146 }
169 147  
170 148 private:
... ... @@ -236,6 +214,8 @@ void DaliTableView::SortAlphabetically( bool sortAlphabetically )
236 214  
237 215 void DaliTableView::Initialize( Application& application )
238 216 {
  217 + DemoHelper::RequestThemeChange();
  218 +
239 219 Stage::GetCurrent().KeyEventSignal().Connect( this, &DaliTableView::OnKeyEvent );
240 220  
241 221 const Vector2 stageSize = Stage::GetCurrent().GetSize();
... ... @@ -256,8 +236,7 @@ void DaliTableView::Initialize( Application&amp; application )
256 236 Dali::Layer toolBarLayer = DemoHelper::CreateToolbar(toolbar,
257 237 DEFAULT_TOOLBAR_IMAGE_PATH,
258 238 DEFAULT_TOOLBAR_TEXT,
259   - DemoHelper::DEFAULT_VIEW_STYLE,
260   - DemoHelper::GetDefaultTextStyle());
  239 + DemoHelper::DEFAULT_VIEW_STYLE);
261 240  
262 241 mRootActor.AddChild( toolBarLayer, TableView::CellPosition( 0, 0 ) );
263 242 mRootActor.SetFitHeight( 0 );
... ... @@ -538,20 +517,16 @@ Actor DaliTableView::CreateTile( const std::string&amp; name, const std::string&amp; tit
538 517 image.Add( stencil );
539 518 }
540 519  
541   - TextView text = TextView::New( title );
542   - text.SetAnchorPoint( AnchorPoint::CENTER );
543   - text.SetParentOrigin( ParentOrigin::CENTER );
544   - text.SetWidthExceedPolicy( Toolkit::TextView::ShrinkToFit );
545   - text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
546   - text.SetLineJustification( Toolkit::TextView::Center );
547   - text.SetTextAlignment( Toolkit::Alignment::Type( Alignment::HorizontalCenter | Alignment::VerticalCenter ) );
548   - text.SetZ( 1 );
549   - // make the text 90% of tile
550   - text.SetResizePolicy( SIZE_RELATIVE_TO_PARENT, ALL_DIMENSIONS );
551   - text.SetSizeModeFactor( Vector3( 0.9f, 0.9f, 0.0f ) );
552   - text.SetStyleToCurrentText( GetTableTextStyle() );
553   - text.SetSnapshotModeEnabled( false );
554   - content.Add( text );
  520 + TextLabel label = TextLabel::New();
  521 + label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  522 + label.SetProperty( Control::Property::STYLE_NAME, "launcherlabel" );
  523 + label.SetProperty( TextLabel::Property::MULTI_LINE, true );
  524 + label.SetProperty( TextLabel::Property::TEXT, title );
  525 + label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
  526 + label.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
  527 + label.SetResizePolicy( FILL_TO_PARENT, HEIGHT );
  528 + label.SetColor( TABLE_TEXT_STYLE_COLOR );
  529 + content.Add( label );
555 530  
556 531 // Set the tile to be keyboard focusable
557 532 content.SetKeyboardFocusable(true);
... ... @@ -780,11 +755,10 @@ void DaliTableView::InitialiseBackgroundActors( Actor actor )
780 755 child.SetPosition( childPos );
781 756  
782 757 // Define bubble horizontal parallax and vertical wrapping
783   - Constraint animConstraint = Constraint::New < Vector3 > ( Actor::Property::POSITION,
784   - Source( mScrollView, ScrollView::Property::SCROLL_POSITION ),
785   - Dali::ParentSource( Dali::Actor::Property::SIZE ),
786   - AnimateBubbleConstraint( childPos, Random::Range( -0.85f, 0.25f ), childSize.height ) );
787   - child.ApplyConstraint( animConstraint );
  758 + Constraint animConstraint = Constraint::New < Vector3 > ( child, Actor::Property::POSITION, AnimateBubbleConstraint( childPos, Random::Range( -0.85f, 0.25f ), childSize.height ) );
  759 + animConstraint.AddSource( Source( mScrollView, ScrollView::Property::SCROLL_POSITION ) );
  760 + animConstraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) );
  761 + animConstraint.Apply();
788 762  
789 763 // Kickoff animation
790 764 Animation animation = Animation::New( Random::Range( 40.0f, 80.0f ) );
... ...
demo/po/as.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "বেলুন"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "অৱৰুদ্ধ কৰক"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "থুপ"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "ঘনক পৰিৱৰ্তনীয় প্ৰভাৱ"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "পৰিৱৰ্তনীয় প্ৰভাৱ"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "আইটেম দর্শন"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "পৰিবৰ্দ্ধক"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "অস্পষ্ট"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "বিস্তাৰ"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "পৃষ্ঠা লেআউট"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "ৰেডিয়েল নক্সা"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "প্ৰতিফলিত কৰক"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "স্ক্ৰ'ল কৰক"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "ছাঁয়া"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "লিপি"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "প্ৰতিচ্ছবি স্কেল কৰক"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "লেৱেল কৰক"
... ...
demo/po/de.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "Schaumbildung"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "Blöcke"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "Cluster"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "Würfel Übergangseffekt"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "Auflösen Übergangseffekt"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "Item-Ansicht"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "Bildschirmlupe"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "Bewegungsunschärfe"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "Bewegung Strecke"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "Seite wechseln"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "Radialmenü"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "Brechung"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "Scroll-Ansicht"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "Licht und Schatten"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "Scripting"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "Bildskalierung"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "Beschriftung"
... ...
demo/po/en.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "Bubbles"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "Blocks"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "Cluster"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "Cube Transition"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "Dissolve Transition"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "Item View"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "Magnifier"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "Motion Blur"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "Motion Stretch"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "Page Turn View"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "Radial Menu"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "Refraction"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "Scroll View"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "Lights and shadows"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "Script Based UI"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "Image Scaling Modes"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "Text Label"
... ...
demo/po/en_GB.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "Bubbles"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "Blocks"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "Cluster"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "Cube Transition"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "Dissolve Transition"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "Item View"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "Magnifier"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "Motion Blur"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "Motion Stretch"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "Page Turn View"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "Radial Menu"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "Refraction"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "Scroll View"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "Lights and shadows"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "Script Based UI"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "Image Scaling Modes"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "Text Label"
... ...
demo/po/en_US.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "Bubbles"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "Blocks"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "Cluster"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "Cube Transition"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "Dissolve Transition"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "Item View"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "Magnifier"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "Motion Blur"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "Motion Stretch"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "Page Turn View"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "Radial Menu"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "Refraction"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "Scroll View"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "Lights and shadows"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "Script Based UI"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "Image Scaling Modes"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "Text Label"
... ...
demo/po/es.po 0 → 100644
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "Burbujas"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "Bloques"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "Agrupación"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "Transición cubos"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "Transición disolver"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "Vista de elementos"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "Lupa"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "Desenfoque de movimiento"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "Movimiento con deformación"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "Vista de páginas"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "Menú radial"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "Refracción"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "Vista de desplazamiento"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "Luces y sombras"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "Interfaz definida por Script"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "Modos de escalado de imagen"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "Etiqueta de texto"
... ...
demo/po/ko.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "방울"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "블록"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "클러스터"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "입방체 전환"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "디졸브 전환"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "아이템 뷰"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "돋보기"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "모션 블러"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "늘이기"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "책장 넘기기"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "레이디 얼 메뉴"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "굴절 효과"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "스크롤 뷰"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "빛과 그림자"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "스크립팅"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "이미지 확대"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "텍스트 라벨"
... ...
demo/po/ml.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "കുമിള"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "തടയപ്പെട്ട"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "ക്ലസ്റ്റര്"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "സമചതുരക്കട്ട സംക്രമണ ഇഫക്ട്"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "സ്ഥാനാന്തരം സംക്രമണ ഇഫക്ട്"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "ഇനം കാഴ്ച"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "ഭൂതക്കണ്ണാടി"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "അവ്യക്തമാക്കല്"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "സ്ട്രെച്ച്"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "പേജ് ലേഔട്ട്"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "റേഡിയല് രേഖാചിത്രം"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "പ്രതിഫലിക്കുക"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "സ്ക്രോള്ചെയ്യുക കാഴ്ച"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "നിഴല്"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "സ്ക്രിപ്റ്റ്"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "ഇമേജിംഗ്"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "ലേബലുചെയ്യുക"
... ...
demo/po/ur.po 0 → 100644
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "بلبلے"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "اینٹیں"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "کلسٹر"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "کیوب منتقلی"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "حل منتقلی"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "چیزوں کی فہرست"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "مکبر"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "دھندلانے کی حرکت"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "کھینچھنے کی حرکت"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "کتاب"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "ریڈیل مینو"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "رفراکشن"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "سکرول ویو"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "روشنی اور سائے"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "سکرپٹ"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "تصویر پیمائی"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "لیبل"
... ...
demo/po/zn_CH.po 0 → 100755
  1 +msgid "DALI_DEMO_STR_TITLE_BUBBLES"
  2 +msgstr "气泡"
  3 +
  4 +msgid "DALI_DEMO_STR_TITLE_BLOCKS"
  5 +msgstr "块体"
  6 +
  7 +msgid "DALI_DEMO_STR_TITLE_CLUSTER"
  8 +msgstr "叢集"
  9 +
  10 +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION"
  11 +msgstr "方块 切换效果"
  12 +
  13 +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION"
  14 +msgstr "冰消瓦解 切换效果"
  15 +
  16 +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW"
  17 +msgstr "項目 檢視"
  18 +
  19 +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER"
  20 +msgstr "放大鏡"
  21 +
  22 +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR"
  23 +msgstr "动作 模糊"
  24 +
  25 +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH"
  26 +msgstr "动作 拉伸"
  27 +
  28 +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW"
  29 +msgstr "页面"
  30 +
  31 +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU"
  32 +msgstr "射线图"
  33 +
  34 +msgid "DALI_DEMO_STR_TITLE_REFRACTION"
  35 +msgstr "折光"
  36 +
  37 +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW"
  38 +msgstr "捲動"
  39 +
  40 +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS"
  41 +msgstr "阴影"
  42 +
  43 +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI"
  44 +msgstr "指令檔"
  45 +
  46 +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING"
  47 +msgstr "图像 制定級數"
  48 +
  49 +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL"
  50 +msgstr "标签"
... ...
examples/animated-shapes/animated-shapes-example.cpp
... ... @@ -18,6 +18,8 @@
18 18 #include <dali/dali.h>
19 19 #include <dali-toolkit/dali-toolkit.h>
20 20  
  21 +#include "shared/view.h"
  22 +
21 23 using namespace Dali;
22 24  
23 25 namespace
... ... @@ -47,6 +49,8 @@ public:
47 49 // The Init signal is received once (only) during the Application lifetime
48 50 void Create( Application& application )
49 51 {
  52 + DemoHelper::RequestThemeChange();
  53 +
50 54 // Get a handle to the stage
51 55 Stage stage = Stage::GetCurrent();
52 56  
... ...
examples/atlas/atlas-example.cpp
... ... @@ -209,7 +209,6 @@ private:
209 209  
210 210 Toolkit::View mView; ///< The View instance.
211 211 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
212   - Toolkit::TextView mTitleActor; ///< The Toolbar's Title.
213 212 Layer mContentLayer; ///< Content layer (scrolling cluster content)
214 213 Toolkit::PushButton mLoseContextButton;
215 214 Atlas mAtlas;
... ...
examples/blocks/blocks-example.cpp
... ... @@ -73,65 +73,6 @@ const int TOTAL_LEVELS(3); ///&lt;
73 73 // constraints ////////////////////////////////////////////////////////////////
74 74  
75 75 /**
76   - * CollisionConstraint generates a collision vector
77   - * between two actors a and b, assuming they're rectangular
78   - * based on their size.
79   - */
80   -struct CollisionConstraint
81   -{
82   - /**
83   - * Collision Constraint constructor
84   - * The adjust (optional) parameter can be used to add a margin
85   - * to the actors. A +ve size will result in larger collisions,
86   - * while a -ve size will result in tighter collisions.
87   - *
88   - * @param[in] adjust (optional) Adjusts the rectangular size detection
89   - */
90   - CollisionConstraint(Vector3 adjust = Vector3::ZERO)
91   - : mAdjust(adjust)
92   - {
93   - }
94   -
95   - /**
96   - * Generates collision vector indicating whether Actor's A and B
97   - * have overlapped eachother, and the relative position of Actor B to A.
98   - *
99   - * @param[in] current The current collision-property (ignored)
100   - * @param[in] propertyA Actor A's Position property.
101   - * @param[in] propertyB Actor B's Position property.
102   - * @param[in] propertySizeA Actor A's Size property.
103   - * @param[in] propertySizeB Actor B's Size property.
104   - * @return The collision vector is returned.
105   - */
106   - Vector3 operator()(const Vector3& current,
107   - const PropertyInput& propertyA,
108   - const PropertyInput& propertyB,
109   - const PropertyInput& propertySizeA,
110   - const PropertyInput& propertySizeB)
111   - {
112   - const Vector3& a = propertyA.GetVector3();
113   - const Vector3& b = propertyB.GetVector3();
114   - const Vector3& sizeA = propertySizeA.GetVector3();
115   - const Vector3& sizeB = propertySizeB.GetVector3();
116   - const Vector3 sizeComb = (sizeA + sizeB + mAdjust) * 0.5f;
117   -
118   - // get collision relative to a.
119   - Vector3 delta = b - a;
120   -
121   - // Check if not overlapping Actors.
122   - if( (fabsf(delta.x) > sizeComb.width) ||
123   - (fabsf(delta.y) > sizeComb.height) )
124   - {
125   - delta = Vector3::ZERO; // not overlapping
126   - }
127   -
128   - return delta; // overlapping, return overlap vector relative to actor a.
129   - }
130   -
131   - const Vector3 mAdjust; ///< Size Adjustment value
132   -};
133   -
134   -/**
135 76 * CollisionCircleRectangleConstraint generates a collision vector
136 77 * between two actors a (circle) and b (rectangle)
137 78 */
... ... @@ -157,23 +98,20 @@ struct CollisionCircleRectangleConstraint
157 98 * Generates collision vector indicating whether Actor's A and B
158 99 * have overlapped eachother, and the relative position of Actor B to A.
159 100 *
160   - * @param[in] current The current collision-property (ignored)
161   - * @param[in] propertyA Actor A's Position property.
162   - * @param[in] propertyB Actor B's Position property.
163   - * @param[in] propertySizeA Actor A's Size property.
164   - * @param[in] propertySizeB Actor B's Size property.
  101 + * @param[in,out] current The current collision-property
  102 + * @param[in] inputs Contains:
  103 + * Actor A's Position property.
  104 + * Actor B's Position property.
  105 + * Actor A's Size property.
  106 + * Actor B's Size property.
165 107 * @return The collision vector is returned.
166 108 */
167   - Vector3 operator()(const Vector3& current,
168   - const PropertyInput& propertyA,
169   - const PropertyInput& propertyB,
170   - const PropertyInput& propertySizeA,
171   - const PropertyInput& propertySizeB)
  109 + void operator()( Vector3& current, const PropertyInputContainer& inputs )
172 110 {
173   - const Vector3& a = propertyA.GetVector3();
174   - const Vector3 b = propertyB.GetVector3() + mAdjustPosition;
175   - const Vector3& sizeA = propertySizeA.GetVector3();
176   - const Vector3& sizeB = propertySizeB.GetVector3();
  111 + const Vector3& a = inputs[0]->GetVector3();
  112 + const Vector3 b = inputs[1]->GetVector3() + mAdjustPosition;
  113 + const Vector3& sizeA = inputs[2]->GetVector3();
  114 + const Vector3& sizeB = inputs[3]->GetVector3();
177 115 const Vector3 sizeA2 = sizeA * 0.5f; // circle radius
178 116 const Vector3 sizeB2 = (sizeB + mAdjustSize) * 0.5f; // rectangle half rectangle.
179 117  
... ... @@ -211,10 +149,12 @@ struct CollisionCircleRectangleConstraint
211 149 if(delta.Length() < sizeA2.x)
212 150 {
213 151 delta.Normalize();
214   - return delta;
  152 + current = delta;
  153 + }
  154 + else
  155 + {
  156 + current = Vector3::ZERO;
215 157 }
216   -
217   - return Vector3::ZERO;
218 158 }
219 159  
220 160 const Vector3 mAdjustPosition; ///< Position Adjustment value
... ... @@ -243,20 +183,17 @@ struct WobbleConstraint
243 183 }
244 184  
245 185 /**
246   - * @param[in] current The current rotation property (ignored)
247   - * @param[in] propertyWobble The wobble property (value from 0.0f to 1.0f)
  186 + * @param[in,out] current The current rotation property
  187 + * @param[in] inputs Contains the wobble property (value from 0.0f to 1.0f)
248 188 * @return The rotation (quaternion) is generated.
249 189 */
250   - Quaternion operator()(const Quaternion& current,
251   - const PropertyInput& propertyWobble)
  190 + void operator()( Quaternion& current, const PropertyInputContainer& inputs )
252 191 {
253   - const float& wobble = propertyWobble.GetFloat();
  192 + const float& wobble = inputs[0]->GetFloat();
254 193  
255 194 float f = sinf(wobble * 10.0f) * (1.0f-wobble);
256 195  
257   - Quaternion q(mDeviation * f, Vector3::ZAXIS);
258   -
259   - return q;
  196 + current = Quaternion(mDeviation * f, Vector3::ZAXIS);
260 197 }
261 198  
262 199 const float mDeviation; ///< Deviation factor in radians.
... ... @@ -289,6 +226,8 @@ public:
289 226 */
290 227 void Create(Application& application)
291 228 {
  229 + DemoHelper::RequestThemeChange();
  230 +
292 231 Stage::GetCurrent().KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent);
293 232  
294 233 // Creates a default view with a default tool bar.
... ... @@ -346,10 +285,9 @@ private:
346 285 mPaddleImage.SetSize( mPaddleFullSize );
347 286  
348 287 mWobbleProperty = mPaddle.RegisterProperty(WOBBLE_PROPERTY_NAME, 0.0f);
349   - Constraint wobbleConstraint = Constraint::New<Quaternion>( Actor::Property::ORIENTATION,
350   - LocalSource(mWobbleProperty),
351   - WobbleConstraint(10.0f));
352   - mPaddle.ApplyConstraint(wobbleConstraint);
  288 + Constraint wobbleConstraint = Constraint::New<Quaternion>( mPaddle, Actor::Property::ORIENTATION, WobbleConstraint(10.0f));
  289 + wobbleConstraint.AddSource( LocalSource(mWobbleProperty) );
  290 + wobbleConstraint.Apply();
353 291  
354 292 mPaddle.SetPosition( stageSize * Vector3( PADDLE_START_POSITION ) );
355 293 mContentLayer.Add(mPaddle);
... ... @@ -375,13 +313,12 @@ private:
375 313 Actor delegate = Actor::New();
376 314 stage.Add(delegate);
377 315 Property::Index property = delegate.RegisterProperty(COLLISION_PROPERTY_NAME, Vector3::ZERO);
378   - Constraint constraint = Constraint::New<Vector3>( property,
379   - Source(mBall, Actor::Property::POSITION),
380   - Source(mPaddle, Actor::Property::POSITION),
381   - Source(mBall, Actor::Property::SIZE),
382   - Source(mPaddle, Actor::Property::SIZE),
383   - CollisionCircleRectangleConstraint( -Vector3(0.0f, mPaddleHitMargin.height * 0.575f, 0.0f),-Vector3(mPaddleHitMargin) ));
384   - delegate.ApplyConstraint(constraint);
  316 + Constraint constraint = Constraint::New<Vector3>( delegate, property, CollisionCircleRectangleConstraint( -Vector3(0.0f, mPaddleHitMargin.height * 0.575f, 0.0f),-Vector3(mPaddleHitMargin) ) );
  317 + constraint.AddSource( Source(mBall, Actor::Property::POSITION) );
  318 + constraint.AddSource( Source(mPaddle, Actor::Property::POSITION) );
  319 + constraint.AddSource( Source(mBall, Actor::Property::SIZE) );
  320 + constraint.AddSource( Source(mPaddle, Actor::Property::SIZE) );
  321 + constraint.Apply();
385 322  
386 323 PropertyNotification paddleNotification = delegate.AddPropertyNotification( property, GreaterThanCondition(0.0f) );
387 324 paddleNotification.NotifySignal().Connect( this, &ExampleController::OnHitPaddle );
... ... @@ -600,13 +537,12 @@ private:
600 537  
601 538 // Add a constraint on the brick between it and the ball generating a collision-property
602 539 Property::Index property = brick.RegisterProperty(COLLISION_PROPERTY_NAME, Vector3::ZERO);
603   - Constraint constraint = Constraint::New<Vector3>( property,
604   - Source(mBall, Actor::Property::POSITION),
605   - Source(brick, Actor::Property::POSITION),
606   - Source(mBall, Actor::Property::SIZE),
607   - Source(brick, Actor::Property::SIZE),
608   - CollisionCircleRectangleConstraint(BRICK_COLLISION_MARGIN));
609   - brick.ApplyConstraint(constraint);
  540 + Constraint constraint = Constraint::New<Vector3>( brick, property, CollisionCircleRectangleConstraint(BRICK_COLLISION_MARGIN) );
  541 + constraint.AddSource( Source(mBall, Actor::Property::POSITION) );
  542 + constraint.AddSource( Source(brick, Actor::Property::POSITION) );
  543 + constraint.AddSource( Source(mBall, Actor::Property::SIZE) );
  544 + constraint.AddSource( Source(brick, Actor::Property::SIZE) );
  545 + constraint.Apply();
610 546  
611 547 // Now add a notification on this collision-property
612 548  
... ...
examples/bubble-effect/bubble-effect-example.cpp
... ... @@ -95,6 +95,8 @@ private:
95 95 // The Init signal is received once (only) during the Application lifetime
96 96 void Create(Application& app)
97 97 {
  98 + DemoHelper::RequestThemeChange();
  99 +
98 100 Stage stage = Stage::GetCurrent();
99 101 Vector2 stageSize = stage.GetSize();
100 102  
... ...
examples/builder/examples.cpp
... ... @@ -59,7 +59,7 @@ std::string JSON_BROKEN(&quot; \
59 59 'stage': \
60 60 [ \
61 61 { \
62   - 'type':'TextView', \
  62 + 'type':'TextLabel', \
63 63 'size': [50,50,1], \
64 64 'parent-origin': 'CENTER', \
65 65 'text':'COULD NOT LOAD JSON FILE' \
... ... @@ -243,15 +243,12 @@ public:
243 243 {
244 244 if(!mTitleActor)
245 245 {
246   - mTitleActor = TextView::New();
  246 + mTitleActor = DemoHelper::CreateToolBarLabel( "" );
247 247 // Add title to the tool bar.
248 248 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
249 249 }
250 250  
251   - Font font = Font::New();
252   - mTitleActor.SetText( title );
253   - mTitleActor.SetSize( font.MeasureText( title ) );
254   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
  251 + mTitleActor.SetProperty( TextLabel::Property::TEXT, title );
255 252 }
256 253  
257 254 bool OnToolSelectLayout( Toolkit::Button button )
... ... @@ -396,23 +393,14 @@ public:
396 393  
397 394 Actor MenuItem(const std::string& text)
398 395 {
399   - TextView t = TextView::New();
400   - t.SetResizePolicy( FILL_TO_PARENT, WIDTH );
401   - t.SetMarkupProcessingEnabled(true);
402   -
403   - int size = static_cast<int>(DemoHelper::ScalePointSize(6));
404   -
405   - std::ostringstream fontString;
406   - fontString << "<font size="<< size <<">"<< ShortName( text ) << "</font>";
407   -
408   - t.SetText( fontString.str() );
409   -
410   - t.SetTextAlignment( Alignment::HorizontalLeft );
  396 + TextLabel label = TextLabel::New( ShortName( text ) );
  397 + label.SetProperty( Dali::Toolkit::Control::Property::STYLE_NAME, "builderlabel" );
  398 + label.SetResizePolicy( FILL_TO_PARENT, WIDTH );
411 399  
412 400 // Hook up tap detector
413   - mTapDetector.Attach( t );
  401 + mTapDetector.Attach( label );
414 402  
415   - return t;
  403 + return label;
416 404 }
417 405  
418 406 bool OnTimer()
... ... @@ -516,6 +504,8 @@ public:
516 504  
517 505 void Create(Application& app)
518 506 {
  507 + DemoHelper::RequestThemeChange();
  508 +
519 509 Stage stage = Stage::GetCurrent();
520 510  
521 511 Stage::GetCurrent().KeyEventSignal().Connect(this, &ExampleApp::OnKeyEvent);
... ... @@ -605,7 +595,7 @@ private:
605 595 unsigned int mOrientation;
606 596  
607 597 Toolkit::ToolBar mToolBar;
608   - TextView mTitleActor; ///< The Toolbar's Title.
  598 + TextLabel mTitleActor; ///< The Toolbar's Title.
609 599  
610 600 Layer mBuilderLayer;
611 601  
... ...
examples/buttons/buttons-example.cpp
... ... @@ -108,6 +108,8 @@ class ButtonsController: public ConnectionTracker
108 108 {
109 109 // The Init signal is received once (only) during the Application lifetime
110 110  
  111 + DemoHelper::RequestThemeChange();
  112 +
111 113 // Respond to key events
112 114 Stage::GetCurrent().KeyEventSignal().Connect(this, &ButtonsController::OnKeyEvent);
113 115  
... ... @@ -238,8 +240,8 @@ class ButtonsController: public ConnectionTracker
238 240 tableView.SetSize( DP(260), 0.0f );
239 241 tableView.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
240 242  
241   - Toolkit::TextView textView = Toolkit::TextView::New( "Select enabled" );
242   - tableView.AddChild( textView, Toolkit::TableView::CellPosition( 0, 0 ) );
  243 + Toolkit::TextLabel textLabel = Toolkit::TextLabel::New( "Select enabled" );
  244 + tableView.AddChild( textLabel, Toolkit::TableView::CellPosition( 0, 0 ) );
243 245  
244 246 ImageActor imageActor = ImageActor::New( ResourceImage::New( ENABLED_IMAGE ) );
245 247 imageActor.SetSize( DP(RADIO_LABEL_THUMBNAIL_SIZE), DP(RADIO_LABEL_THUMBNAIL_SIZE) );
... ...
examples/cluster/cluster-example.cpp
... ... @@ -183,15 +183,16 @@ struct CarouselEffectOrientationConstraint
183 183 * @param[in] current The object's current property value
184 184 * @return The object's new property value
185 185 */
186   - Vector2 operator()(const Vector2& current,
187   - const PropertyInput& propertyOrientation)
  186 + void operator()( Vector2& current, const PropertyInputContainer& inputs )
188 187 {
189 188 Vector3 axis;
190 189 float angle;
191   - propertyOrientation.GetQuaternion().ToAxisAngle( axis, angle );
192   - Vector2 direction( cosf(angle), sinf(angle) );
  190 + inputs[0]->GetQuaternion().ToAxisAngle( axis, angle );
  191 +
  192 + current.x = cosf(angle);
  193 + current.y = sinf(angle);
193 194  
194   - return mAngleSweep * direction;
  195 + current *= mAngleSweep;
195 196 }
196 197  
197 198 Vector2 mAngleSweep;
... ... @@ -220,16 +221,13 @@ struct ShearEffectConstraint
220 221 }
221 222  
222 223 /**
223   - * @param[in] current The current shear effect Angle.
224   - * @param[in] scrollOvershootProperty The overshoot property from ScrollView
225   - * @param[in] propertyViewOrientation The orientation of the view e.g. Portrait, Landscape.
  224 + * @param[in,out] current The current shear effect Angle.
  225 + * @param[in] inputs Contains the overshoot property from ScrollView and the orientation of the view e.g. Portrait, Landscape.
226 226 * @return angle to provide ShearShaderEffect
227 227 */
228   - float operator()(const float& current,
229   - const PropertyInput& scrollOvershootProperty,
230   - const PropertyInput& propertyViewOrientation)
  228 + void operator()( float& current, const PropertyInputContainer& inputs )
231 229 {
232   - float f = scrollOvershootProperty.GetVector3().x;
  230 + float f = inputs[0]->GetVector3().x;
233 231  
234 232 float mag = fabsf(f);
235 233 float halfWidth = mStageSize.x * 0.5f;
... ... @@ -245,11 +243,11 @@ struct ShearEffectConstraint
245 243 // the component mask passed in.
246 244 Vector3 axis;
247 245 float angle;
248   - propertyViewOrientation.GetQuaternion().ToAxisAngle( axis, angle );
  246 + inputs[1]->GetQuaternion().ToAxisAngle( axis, angle );
249 247 Vector2 direction( cosf(angle), sinf(angle) );
250 248 float yield = direction.x * mComponentMask.x + direction.y * mComponentMask.y;
251 249  
252   - return overshoot * mMaxOvershoot * yield;
  250 + current = overshoot * mMaxOvershoot * yield;
253 251 }
254 252  
255 253 Vector2 mStageSize;
... ... @@ -276,15 +274,15 @@ struct ShearEffectCenterConstraint
276 274 }
277 275  
278 276 /**
279   - * @param[in] current The current center
280   - * @param[in] propertyViewSize The current view size
  277 + * @param[in,out] current The current center
  278 + * @param[in] inputs Contains the current view size
281 279 * @return vector to provide ShearShaderEffect
282 280 */
283   - Vector2 operator()(const Vector2& current,
284   - const PropertyInput& propertyViewSize)
  281 + void operator()( Vector2& current, const PropertyInputContainer& inputs )
285 282 {
286   - float f = propertyViewSize.GetVector3().width / mStageSize.width;
287   - return Vector2( f * mCenter.x, mCenter.y );
  283 + float f = inputs[0]->GetVector3().width / mStageSize.width;
  284 + current.x = f * mCenter.x;
  285 + current.y = mCenter.y;
288 286 }
289 287  
290 288 Vector2 mStageSize;
... ... @@ -313,9 +311,9 @@ struct SphereEffectOffsetConstraint
313 311 * @param[in] propertyViewSize The current view size
314 312 * @return vector to provide SphereShaderEffect
315 313 */
316   - float operator()(const float& current)
  314 + void operator()( float& current, const PropertyInputContainer& /* inputs */ )
317 315 {
318   - return current + mOffset;
  316 + current += mOffset;
319 317 }
320 318  
321 319 float mOffset;
... ... @@ -375,11 +373,11 @@ struct ClusterInfo
375 373 }
376 374  
377 375  
378   - Cluster mCluster; ///< Cluster instance
379   - int mIndex; ///< Cluster index
380   - Vector3 mPosition; ///< Cluster original position
381   - Vector3 mSize; ///< Cluster original size
382   - ActiveConstraint mEffectConstraint; ///< Cluster constraint
  376 + Cluster mCluster; ///< Cluster instance
  377 + int mIndex; ///< Cluster index
  378 + Vector3 mPosition; ///< Cluster original position
  379 + Vector3 mSize; ///< Cluster original size
  380 + Constraint mEffectConstraint; ///< Cluster constraint
383 381 };
384 382  
385 383 /**
... ... @@ -447,6 +445,8 @@ public:
447 445 */
448 446 void Create(Application& application)
449 447 {
  448 + DemoHelper::RequestThemeChange();
  449 +
450 450 Stage::GetCurrent().KeyEventSignal().Connect(this, &ClusterController::OnKeyEvent);
451 451  
452 452 Vector2 stageSize = Stage::GetCurrent().GetSize();
... ... @@ -689,7 +689,7 @@ public:
689 689 RemoveShaderEffectRecursively( cluster );
690 690 if( i->mEffectConstraint )
691 691 {
692   - cluster.RemoveConstraint(i->mEffectConstraint);
  692 + i->mEffectConstraint.Remove();
693 693 i->mEffectConstraint.Reset();
694 694 }
695 695 }
... ... @@ -719,10 +719,10 @@ public:
719 719  
720 720 Vector2 shearCenter( Vector2(position.x + size.width * shearAnchor.x, position.y + size.height * shearAnchor.y) );
721 721 Property::Index centerProperty = shaderEffect.GetPropertyIndex(shaderEffect.GetCenterPropertyName());
722   - Constraint constraint = Constraint::New<Vector2>( centerProperty,
723   - Source(mView, Actor::Property::SIZE),
724   - ShearEffectCenterConstraint(stageSize, shearCenter) );
725   - shaderEffect.ApplyConstraint(constraint);
  722 + Constraint constraint = Constraint::New<Vector2>( shaderEffect, centerProperty, ShearEffectCenterConstraint(stageSize, shearCenter) );
  723 + constraint.AddSource( Source(mView, Actor::Property::SIZE) );
  724 +
  725 + constraint.Apply();
726 726  
727 727 SetShaderEffectRecursively( cluster,shaderEffect );
728 728  
... ... @@ -731,16 +731,15 @@ public:
731 731 Property::Index angleXAxisProperty = shaderEffect.GetPropertyIndex(shaderEffect.GetAngleXAxisPropertyName());
732 732 Property::Index angleYAxisProperty = shaderEffect.GetPropertyIndex(shaderEffect.GetAngleYAxisPropertyName());
733 733  
734   - constraint = Constraint::New<float>( angleXAxisProperty,
735   - Source(mScrollView, scrollOvershootProperty),
736   - Source(mView, Actor::Property::ORIENTATION),
737   - ShearEffectConstraint(stageSize, SHEAR_EFFECT_MAX_OVERSHOOT, Vector2::XAXIS) );
738   - shaderEffect.ApplyConstraint(constraint);
739   - constraint = Constraint::New<float>( angleYAxisProperty,
740   - Source(mScrollView, scrollOvershootProperty),
741   - Source(mView, Actor::Property::ORIENTATION),
742   - ShearEffectConstraint(stageSize, SHEAR_EFFECT_MAX_OVERSHOOT, Vector2::YAXIS) );
743   - shaderEffect.ApplyConstraint(constraint);
  734 + constraint = Constraint::New<float>( shaderEffect, angleXAxisProperty, ShearEffectConstraint(stageSize, SHEAR_EFFECT_MAX_OVERSHOOT, Vector2::XAXIS) );
  735 + constraint.AddSource( Source(mScrollView, scrollOvershootProperty) );
  736 + constraint.AddSource( Source(mView, Actor::Property::ORIENTATION) );
  737 + constraint.Apply();
  738 +
  739 + constraint = Constraint::New<float>( shaderEffect, angleYAxisProperty, ShearEffectConstraint(stageSize, SHEAR_EFFECT_MAX_OVERSHOOT, Vector2::YAXIS ) );
  740 + constraint.AddSource( Source(mScrollView, scrollOvershootProperty) );
  741 + constraint.AddSource( Source(mView, Actor::Property::ORIENTATION) );
  742 + constraint.Apply();
744 743  
745 744  
746 745 }
... ... @@ -764,9 +763,9 @@ public:
764 763 CAROUSEL_EFFECT_ANGLE_SWEEP / stageSize.width );
765 764  
766 765 Property::Index anglePerUnit = shaderEffect.GetPropertyIndex( shaderEffect.GetAnglePerUnitPropertyName() );
767   - shaderEffect.ApplyConstraint( Constraint::New<Vector2>( anglePerUnit,
768   - Source(mView, Actor::Property::ORIENTATION),
769   - CarouselEffectOrientationConstraint( angleSweep ) ) );
  766 + Constraint constraint = Constraint::New<Vector2>( shaderEffect, anglePerUnit, CarouselEffectOrientationConstraint( angleSweep ) );
  767 + constraint.AddSource( Source(mView, Actor::Property::ORIENTATION) );
  768 + constraint.Apply();
770 769  
771 770 break;
772 771 }
... ... @@ -792,11 +791,11 @@ public:
792 791 // dont apply shader effect to scrollview as it might override internal shaders for bounce effect etc
793 792 for( std::vector<ClusterInfo>::iterator i = mClusterInfo.begin(); i != mClusterInfo.end(); ++i )
794 793 {
795   - Constraint constraint = Constraint::New<float>(Actor::Property::POSITION_Z, SphereEffectOffsetConstraint(SPHERE_EFFECT_POSITION_Z));
796   - constraint.SetRemoveAction(Constraint::Discard);
797 794 Cluster cluster = i->mCluster;
  795 + i->mEffectConstraint = Constraint::New<float>( cluster, Actor::Property::POSITION_Z, SphereEffectOffsetConstraint( SPHERE_EFFECT_POSITION_Z ) );
  796 + i->mEffectConstraint.SetRemoveAction(Constraint::Discard);
798 797 SetShaderEffectRecursively( cluster, shaderEffect );
799   - i->mEffectConstraint = cluster.ApplyConstraint(constraint);
  798 + i->mEffectConstraint.Apply();
800 799 }
801 800 break;
802 801 }
... ... @@ -825,15 +824,13 @@ public:
825 824 {
826 825 if(!mTitleActor)
827 826 {
828   - mTitleActor = TextView::New();
  827 + mTitleActor = DemoHelper::CreateToolBarLabel( "" );
  828 +
829 829 // Add title to the tool bar.
830 830 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
831 831 }
832 832  
833   - Font font = Font::New();
834   - mTitleActor.SetText( title );
835   - mTitleActor.SetSize( font.MeasureText( title ) );
836   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
  833 + mTitleActor.SetProperty( TextLabel::Property::TEXT, title );
837 834 }
838 835  
839 836 /**
... ... @@ -855,7 +852,7 @@ private:
855 852 Application& mApplication; ///< Application instance
856 853 Toolkit::View mView; ///< The View instance.
857 854 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
858   - TextView mTitleActor; ///< The Toolbar's Title.
  855 + TextLabel mTitleActor; ///< The Toolbar's Title.
859 856  
860 857 Layer mContentLayer; ///< Content layer (scrolling cluster content)
861 858  
... ...
examples/cube-transition-effect/cube-transition-effect-example.cpp
... ... @@ -26,6 +26,8 @@
26 26  
27 27 using namespace Dali;
28 28  
  29 +using Dali::Toolkit::TextLabel;
  30 +
29 31 // LOCAL STUFF
30 32 namespace
31 33 {
... ... @@ -173,7 +175,7 @@ private:
173 175 Toolkit::View mView;
174 176 Toolkit::ToolBar mToolBar;
175 177 Layer mContent;
176   - Toolkit::TextView mTitleActor;
  178 + Toolkit::TextLabel mTitleActor;
177 179 Actor mParent;
178 180  
179 181 Vector2 mViewSize;
... ... @@ -221,6 +223,8 @@ CubeTransitionApp::~CubeTransitionApp()
221 223  
222 224 void CubeTransitionApp::OnInit( Application& application )
223 225 {
  226 + DemoHelper::RequestThemeChange();
  227 +
224 228 Stage::GetCurrent().KeyEventSignal().Connect(this, &CubeTransitionApp::OnKeyEvent);
225 229  
226 230 // Creates a default view with a default tool bar, the view is added to the stage.
... ... @@ -236,7 +240,7 @@ void CubeTransitionApp::OnInit( Application&amp; application )
236 240 mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
237 241  
238 242 // Add title to the tool bar.
239   - mTitleActor = Toolkit::TextView::New();
  243 + mTitleActor = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE_WAVE );
240 244 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter );
241 245  
242 246 //Add an slideshow icon on the right of the title
... ... @@ -290,11 +294,6 @@ void CubeTransitionApp::OnInit( Application&amp; application )
290 294  
291 295 mCurrentEffect = mCubeWaveEffect;
292 296 mCurrentEffect.SetCurrentImage( mCurrentImage );
293   -
294   - // Set Title text
295   - mTitleActor.SetText( APPLICATION_TITLE_WAVE );
296   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_WAVE ) );
297   - mTitleActor.SetStyleToCurrentText( DemoHelper::GetDefaultTextStyle() );
298 297 }
299 298  
300 299 // signal handler, called when the pan gesture is detected
... ... @@ -359,26 +358,22 @@ bool CubeTransitionApp::OnEffectButtonClicked( Toolkit::Button button )
359 358 if(mCurrentEffect == mCubeWaveEffect)
360 359 {
361 360 mCurrentEffect = mCubeCrossEffect;
362   - mTitleActor.SetText( APPLICATION_TITLE_CROSS );
363   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_CROSS ) );
  361 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_CROSS) );
364 362 mEffectChangeButton.SetBackgroundImage(mImageCross);
365 363  
366 364 }
367 365 else if(mCurrentEffect == mCubeCrossEffect)
368 366 {
369 367 mCurrentEffect = mCubeFoldEffect;
370   - mTitleActor.SetText( APPLICATION_TITLE_FOLD );
371   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_FOLD ) );
  368 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_FOLD) );
372 369 mEffectChangeButton.SetBackgroundImage(mImageFold);
373 370 }
374 371 else
375 372 {
376 373 mCurrentEffect = mCubeWaveEffect;
377   - mTitleActor.SetText( APPLICATION_TITLE_WAVE );
378   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_WAVE ) );
  374 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_WAVE) );
379 375 mEffectChangeButton.SetBackgroundImage(mImageWave);
380 376 }
381   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
382 377  
383 378 // Set the current image to cube transition effect
384 379 // only need to set at beginning or change from another effect
... ...
examples/dissolve-effect/dissolve-effect-example.cpp
... ... @@ -26,6 +26,8 @@
26 26  
27 27 using namespace Dali;
28 28  
  29 +using Dali::Toolkit::TextLabel;
  30 +
29 31 // LOCAL STUFF
30 32 namespace
31 33 {
... ... @@ -157,7 +159,7 @@ private:
157 159 Toolkit::View mView;
158 160 Toolkit::ToolBar mToolBar;
159 161 Layer mContent;
160   - Toolkit::TextView mTitleActor;
  162 + Toolkit::TextLabel mTitleActor;
161 163 Actor mParent;
162 164  
163 165 ImageActor mCurrentImage;
... ... @@ -205,6 +207,8 @@ DissolveEffectApp::~DissolveEffectApp()
205 207  
206 208 void DissolveEffectApp::OnInit( Application& application )
207 209 {
  210 + DemoHelper::RequestThemeChange();
  211 +
208 212 Stage::GetCurrent().KeyEventSignal().Connect(this, &DissolveEffectApp::OnKeyEvent);
209 213  
210 214 // Creates a default view with a default tool bar, the view is added to the stage.
... ... @@ -219,9 +223,7 @@ void DissolveEffectApp::OnInit( Application&amp; application )
219 223 mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
220 224  
221 225 // Add title to the tool bar.
222   - mTitleActor = Toolkit::TextView::New();
223   - mTitleActor.SetText( APPLICATION_TITLE_HIGHP );
224   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
  226 + mTitleActor = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE_HIGHP );
225 227 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter );
226 228  
227 229 // Add an slide-show button on the right of the title
... ... @@ -340,15 +342,14 @@ bool DissolveEffectApp::OnEffectButtonClicked( Toolkit::Button button )
340 342 mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision);
341 343 if(mUseHighPrecision)
342 344 {
343   - mTitleActor.SetText( APPLICATION_TITLE_HIGHP );
  345 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_HIGHP) );
344 346 mEffectChangeButton.SetBackgroundImage(mIconHighP);
345 347 }
346 348 else
347 349 {
348   - mTitleActor.SetText( APPLICATION_TITLE_MEDIUMP );
  350 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_MEDIUMP) );
349 351 mEffectChangeButton.SetBackgroundImage(mIconMediumP);
350 352 }
351   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
352 353  
353 354 return true;
354 355 }
... ...
examples/hello-world/hello-world-example.cpp
... ... @@ -15,10 +15,10 @@
15 15 *
16 16 */
17 17  
18   -#include <dali/dali.h>
19   -#include <iostream>
  18 +#include <dali-toolkit/dali-toolkit.h>
20 19  
21 20 using namespace Dali;
  21 +using Dali::Toolkit::TextLabel;
22 22  
23 23 // This example shows how to create and display Hello World! using a simple TextActor
24 24 //
... ... @@ -29,8 +29,6 @@ public:
29 29 HelloWorldController( Application& application )
30 30 : mApplication( application )
31 31 {
32   - std::cout << "HelloWorldController::HelloWorldController" << std::endl;
33   -
34 32 // Connect to the Application's Init signal
35 33 mApplication.InitSignal().Connect( this, &HelloWorldController::Create );
36 34 }
... ... @@ -43,19 +41,13 @@ public:
43 41 // The Init signal is received once (only) during the Application lifetime
44 42 void Create( Application& application )
45 43 {
46   - std::cout << "HelloWorldController::Create" << std::endl;
47   -
48   - // Initialize the actor
49   - TextActor textActor = TextActor::New( "Hello World" );
50   -
51   - // Reposition the actor
52   - textActor.SetParentOrigin( ParentOrigin::CENTER );
53   -
54 44 // Get a handle to the stage
55 45 Stage stage = Stage::GetCurrent();
56 46  
57   - // Display the actor on the stage
58   - stage.Add( textActor );
  47 + TextLabel textLabel = TextLabel::New( "Hello World" );
  48 + textLabel.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  49 + textLabel.SetName( "hello-world-label" );
  50 + stage.Add( textLabel );
59 51  
60 52 // Respond to a click anywhere on the stage
61 53 stage.GetRootLayer().TouchedSignal().Connect( this, &HelloWorldController::OnTouch );
... ...
examples/image-scaling-irregular-grid/image-scaling-irregular-grid-example.cpp
... ... @@ -291,6 +291,8 @@ public:
291 291 {
292 292 std::cout << "ImageScalingScaleToFillController::Create" << std::endl;
293 293  
  294 + DemoHelper::RequestThemeChange();
  295 +
294 296 // Get a handle to the stage:
295 297 Stage stage = Stage::GetCurrent();
296 298  
... ... @@ -539,15 +541,12 @@ public:
539 541 {
540 542 if(!mTitleActor)
541 543 {
542   - mTitleActor = TextView::New();
  544 + mTitleActor = DemoHelper::CreateToolBarLabel( "" );
543 545 // Add title to the tool bar.
544 546 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
545 547 }
546 548  
547   - Font font = Font::New();
548   - mTitleActor.SetText( title );
549   - mTitleActor.SetSize( font.MeasureText( title ) );
550   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
  549 + mTitleActor.SetProperty( TextLabel::Property::TEXT, title );
551 550 }
552 551  
553 552 /**
... ... @@ -576,7 +575,7 @@ private:
576 575 Layer mContentLayer; ///< The content layer (contains non gui chrome actors)
577 576 Toolkit::View mView; ///< The View instance.
578 577 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
579   - TextView mTitleActor; ///< The Toolbar's Title.
  578 + TextLabel mTitleActor; ///< The Toolbar's Title.
580 579 Actor mGridActor; ///< The container for the grid of images
581 580 ScrollView mScrollView; ///< ScrollView UI Component
582 581 bool mScrolling; ///< ScrollView scrolling state (true = scrolling, false = stationary)
... ...
examples/item-view/item-view-example.cpp
... ... @@ -160,12 +160,6 @@ const float BUTTON_BORDER = -10.0f;
160 160 const float MENU_OPTION_HEIGHT(140.0f);
161 161 const float LABEL_TEXT_SIZE_Y = 20.0f;
162 162  
163   -const char* DEFAULT_TEXT_STYLE_FONT_FAMILY("HelveticaNue");
164   -const char* DEFAULT_TEXT_STYLE_FONT_STYLE("Regular");
165   -const PointSize DEFAULT_TEXT_STYLE_POINT_SIZE( 5.0f );
166   -const TextStyle::Weight DEFAULT_TEXT_STYLE_WEIGHT(Dali::TextStyle::MEDIUM);
167   -const Vector4 DEFAULT_TEXT_STYLE_COLOR(1.0f, 1.0f, 1.0f, 1.0f);
168   -
169 163 const Vector3 INITIAL_OFFSCREEN_POSITION( 1000.0f, 0, -1000.0f );
170 164  
171 165 static Vector3 DepthLayoutItemSizeFunctionPortrait(unsigned int numberOfColumns, float layoutWidth)
... ... @@ -240,6 +234,8 @@ public:
240 234 */
241 235 void OnInit(Application& app)
242 236 {
  237 + DemoHelper::RequestThemeChange();
  238 +
243 239 Stage stage = Dali::Stage::GetCurrent();
244 240 stage.KeyEventSignal().Connect(this, &ItemViewExample::OnKeyEvent);
245 241  
... ... @@ -972,15 +968,12 @@ private:
972 968 {
973 969 if(!mTitleActor)
974 970 {
975   - mTitleActor = TextView::New();
  971 + mTitleActor = DemoHelper::CreateToolBarLabel( "" );
976 972 // Add title to the tool bar.
977 973 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
978 974 }
979 975  
980   - Font font = Font::New();
981   - mTitleActor.SetText( title );
982   - mTitleActor.SetSize( font.MeasureText( title ) );
983   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
  976 + mTitleActor.SetProperty( TextLabel::Property::TEXT, title );
984 977 }
985 978  
986 979 void ShowMenu()
... ... @@ -1008,30 +1001,20 @@ private:
1008 1001 slider.ValueChangedSignal().Connect( this, &ItemViewExample::SliderValueChange );
1009 1002 tableView.AddChild( slider, TableView::CellPosition( 0, 0 ) );
1010 1003  
1011   - TextStyle defaultTextStyle;
1012   - defaultTextStyle.SetFontName(DEFAULT_TEXT_STYLE_FONT_FAMILY);
1013   - defaultTextStyle.SetFontStyle(DEFAULT_TEXT_STYLE_FONT_STYLE);
1014   - defaultTextStyle.SetFontPointSize(DEFAULT_TEXT_STYLE_POINT_SIZE);
1015   - defaultTextStyle.SetWeight(DEFAULT_TEXT_STYLE_WEIGHT);
1016   - defaultTextStyle.SetTextColor(DEFAULT_TEXT_STYLE_COLOR);
1017   -
1018   - TextView text = TextView::New( "Duration" );
  1004 + TextLabel text = TextLabel::New( "Duration" );
1019 1005 text.SetAnchorPoint( ParentOrigin::TOP_LEFT );
1020 1006 text.SetParentOrigin( ParentOrigin::TOP_LEFT );
1021   - text.SetTextAlignment( Dali::Toolkit::Alignment::HorizontalLeft );
1022   - text.SetStyleToCurrentText( defaultTextStyle );
1023 1007 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1024   - text.SetSize( 0.0f, LABEL_TEXT_SIZE_Y );
1025   - text.SetZ( -0.9f );
  1008 + text.SetResizePolicy( FIXED, HEIGHT );
  1009 + text.SetSize( Vector2( 0.0f, LABEL_TEXT_SIZE_Y ) );
1026 1010 slider.Add( text );
1027 1011  
1028 1012 Actor textContainer = Actor::New();
1029 1013 textContainer.SetRelayoutEnabled( true );
1030 1014 textContainer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1031   - mAlphaFunctionText = TextView::New( ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex] );
  1015 + mAlphaFunctionText = TextLabel::New( ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex] );
1032 1016 mAlphaFunctionText.SetAnchorPoint( ParentOrigin::CENTER );
1033 1017 mAlphaFunctionText.SetParentOrigin( ParentOrigin::CENTER );
1034   - mAlphaFunctionText.SetTextAlignment( Toolkit::Alignment::VerticalCenter );
1035 1018 textContainer.Add( mAlphaFunctionText );
1036 1019 tableView.AddChild( textContainer, TableView::CellPosition( 1, 0 ) );
1037 1020  
... ... @@ -1039,11 +1022,9 @@ private:
1039 1022 mTapDetector.Attach(mAlphaFunctionText);
1040 1023 mTapDetector.DetectedSignal().Connect( this, &ItemViewExample::ChangeAlphaFunctionOnTap );
1041 1024  
1042   - text = TextView::New( "Alpha Function" );
  1025 + text = TextLabel::New( "Alpha Function" );
1043 1026 text.SetAnchorPoint( ParentOrigin::TOP_LEFT );
1044 1027 text.SetParentOrigin( ParentOrigin::TOP_LEFT );
1045   - text.SetTextAlignment( Dali::Toolkit::Alignment::HorizontalLeft );
1046   - text.SetStyleToCurrentText( defaultTextStyle );
1047 1028 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1048 1029 text.SetSize( 0.0f, LABEL_TEXT_SIZE_Y );
1049 1030 textContainer.Add( text );
... ... @@ -1069,7 +1050,7 @@ private:
1069 1050  
1070 1051 if( mAlphaFunctionText )
1071 1052 {
1072   - mAlphaFunctionText.SetText( ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex] );
  1053 + mAlphaFunctionText.SetProperty( TextLabel::Property::TEXT, std::string(ALPHA_FUNCTIONS_TEXT[mAlphaFuncIndex]) );
1073 1054 }
1074 1055  
1075 1056 if( mItemView )
... ... @@ -1133,7 +1114,7 @@ private:
1133 1114 unsigned int mOrientation;
1134 1115  
1135 1116 Toolkit::ToolBar mToolBar;
1136   - TextView mTitleActor; ///< The Toolbar's Title.
  1117 + TextLabel mTitleActor; ///< The Toolbar's Title.
1137 1118  
1138 1119 ItemView mItemView;
1139 1120 Image mBorderImage;
... ... @@ -1154,7 +1135,7 @@ private:
1154 1135 Toolkit::PushButton mReplaceButton;
1155 1136  
1156 1137 unsigned int mAlphaFuncIndex;
1157   - TextView mAlphaFunctionText;
  1138 + TextLabel mAlphaFunctionText;
1158 1139 BufferImage mWhiteImage;
1159 1140 };
1160 1141  
... ...
examples/logging/logging-example.cpp
... ... @@ -156,6 +156,8 @@ class LoggingController: public ConnectionTracker
156 156 {
157 157 // The Init signal is received once (only) during the Application lifetime
158 158  
  159 + DemoHelper::RequestThemeChange();
  160 +
159 161 mCurrentLogger = 0;
160 162 mPerformanceLoggers.reserve( NUM_LOGGERS );
161 163 mPerformanceLoggers.resize( NUM_LOGGERS );
... ... @@ -198,7 +200,7 @@ class LoggingController: public ConnectionTracker
198 200  
199 201 // Label
200 202 {
201   - Toolkit::TextView label = Toolkit::TextView::New( LOGGER_TEXT );
  203 + Toolkit::TextLabel label = Toolkit::TextLabel::New( LOGGER_TEXT );
202 204 label.SetParentOrigin( ParentOrigin::TOP_LEFT );
203 205 label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
204 206 label.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
... ... @@ -431,7 +433,7 @@ class LoggingController: public ConnectionTracker
431 433  
432 434 // Label
433 435 {
434   - Toolkit::TextView label = Toolkit::TextView::New( FREQUENCY_TEXT );
  436 + Toolkit::TextLabel label = Toolkit::TextLabel::New( FREQUENCY_TEXT );
435 437 label.SetParentOrigin( ParentOrigin::TOP_LEFT );
436 438 label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
437 439 label.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
... ... @@ -541,16 +543,9 @@ class LoggingController: public ConnectionTracker
541 543 << ", " << ((mLoggerStates[i].isTiming) ? "Started" : "Stopped")
542 544 << ", " << ((mLoggerStates[i].isEnabled) ? "Enabled" : "Disabled");
543 545  
544   - Dali::TextStyle textStyle;
545   - textStyle.SetFontName( "HelveticaNue" );
546   - textStyle.SetFontStyle( "Regular" );
547   - textStyle.SetFontPointSize( Dali::PointSize( DemoHelper::ScalePointSize( 7.0f ) ) );
548   - textStyle.SetWeight( Dali::TextStyle::REGULAR );
549   -
550   - Toolkit::TextView textView = Toolkit::TextView::New( ss.str() );
551   - textView.SetStyleToCurrentText( textStyle );
  546 + Toolkit::TextLabel textLabel = Toolkit::TextLabel::New( ss.str() );
552 547  
553   - mLogRadioButtons[i].SetLabel( textView );
  548 + mLogRadioButtons[i].SetLabel( textLabel );
554 549 }
555 550 }
556 551  
... ...
examples/magnifier/magnifier-example.cpp
... ... @@ -57,20 +57,16 @@ struct MagnifierPathConstraint
57 57 {
58 58 }
59 59  
60   - Vector3 operator()(const Vector3& current,
61   - const PropertyInput& sizeProperty,
62   - const PropertyInput& animationTimeProperty)
  60 + void operator()( Vector3& current, const PropertyInputContainer& inputs )
63 61 {
64   - float time = animationTimeProperty.GetFloat();
65   - const Vector3& size = sizeProperty.GetVector3();
  62 + float time = inputs[1]->GetFloat();
  63 + const Vector3& size = inputs[0]->GetVector3();
66 64  
67   - Vector3 range(mStageSize - size - Vector3::ONE * MAGNIFIER_INDENT * 2.0f);
68   - Vector3 position(mOffset);
  65 + current = mOffset;
69 66  
70   - position.x += 0.5f * sinf(time * 0.471f) * range.width;
71   - position.y += 0.5f * sinf(time * 0.8739f) * range.height;
72   -
73   - return position;
  67 + Vector3 range( mStageSize - size - Vector3::ONE * MAGNIFIER_INDENT * 2.0f );
  68 + current.x += 0.5f * sinf(time * 0.471f) * range.width;
  69 + current.y += 0.5f * sinf(time * 0.8739f) * range.height;
74 70 }
75 71  
76 72 Vector3 mStageSize; ///< Keep track of the stage size for determining path within stage bounds
... ... @@ -103,23 +99,19 @@ struct ConfinementConstraint
103 99 {
104 100 }
105 101  
106   - Vector3 operator()(const Vector3& constPosition,
107   - const PropertyInput& sizeProperty,
108   - const PropertyInput& parentOriginProperty,
109   - const PropertyInput& anchorPointProperty,
110   - const PropertyInput& referenceSizeProperty)
  102 + void operator()( Vector3& current, const PropertyInputContainer& inputs )
111 103 {
112   - const Vector3& size = sizeProperty.GetVector3();
113   - const Vector3 origin = parentOriginProperty.GetVector3();
114   - const Vector3& anchor = anchorPointProperty.GetVector3();
115   - const Vector3& referenceSize = referenceSizeProperty.GetVector3();
  104 + const Vector3& size = inputs[0]->GetVector3();
  105 + const Vector3 origin = inputs[1]->GetVector3();
  106 + const Vector3& anchor = inputs[2]->GetVector3();
  107 + const Vector3& referenceSize = inputs[3]->GetVector3();
116 108  
117 109 Vector3 offset(mOffsetOrigin * referenceSize);
118 110  
119   - Vector3 newPosition( constPosition + offset );
120   -
121 111 // Get actual position of Actor relative to parent's Top-Left.
122   - Vector3 position(constPosition + offset + origin * referenceSize);
  112 + Vector3 position(current + offset + origin * referenceSize);
  113 +
  114 + current += offset;
123 115  
124 116 // if top-left corner is outside of Top-Left bounds, then push back in screen.
125 117 Vector3 corner(position - size * anchor - mMinIndent);
... ... @@ -127,17 +119,17 @@ struct ConfinementConstraint
127 119 if(mFlipHorizontal && corner.x < 0.0f)
128 120 {
129 121 corner.x = 0.0f;
130   - newPosition.x += size.width;
  122 + current.x += size.width;
131 123 }
132 124  
133 125 if(mFlipVertical && corner.y < 0.0f)
134 126 {
135 127 corner.y = 0.0f;
136   - newPosition.y += size.height;
  128 + current.y += size.height;
137 129 }
138 130  
139   - newPosition.x -= std::min(corner.x, 0.0f);
140   - newPosition.y -= std::min(corner.y, 0.0f);
  131 + current.x -= std::min(corner.x, 0.0f);
  132 + current.y -= std::min(corner.y, 0.0f);
141 133  
142 134 // if bottom-right corner is outside of Bottom-Right bounds, then push back in screen.
143 135 corner += size - referenceSize + mMinIndent + mMaxIndent;
... ... @@ -145,19 +137,17 @@ struct ConfinementConstraint
145 137 if(mFlipHorizontal && corner.x > 0.0f)
146 138 {
147 139 corner.x = 0.0f;
148   - newPosition.x -= size.width;
  140 + current.x -= size.width;
149 141 }
150 142  
151 143 if(mFlipVertical && corner.y > 0.0f)
152 144 {
153 145 corner.y = 0.0f;
154   - newPosition.y -= size.height;
  146 + current.y -= size.height;
155 147 }
156 148  
157   - newPosition.x -= std::max(corner.x, 0.0f);
158   - newPosition.y -= std::max(corner.y, 0.0f);
159   -
160   - return newPosition;
  149 + current.x -= std::max(corner.x, 0.0f);
  150 + current.y -= std::max(corner.y, 0.0f);
161 151 }
162 152  
163 153 Vector3 mOffsetOrigin; ///< Manual Parent Offset Origin.
... ... @@ -203,6 +193,8 @@ public:
203 193 */
204 194 void Create( Application& application )
205 195 {
  196 + DemoHelper::RequestThemeChange();
  197 +
206 198 Stage::GetCurrent().KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent);
207 199  
208 200 mStageSize = Stage::GetCurrent().GetSize();
... ... @@ -242,14 +234,13 @@ public:
242 234 overlay.Add( mMagnifier );
243 235  
244 236 // Apply constraint to animate the position of the magnifier.
245   - Constraint constraint = Constraint::New<Vector3>(Actor::Property::POSITION,
246   - LocalSource(Actor::Property::SIZE),
247   - LocalSource(Actor::Property::PARENT_ORIGIN),
248   - LocalSource(Actor::Property::ANCHOR_POINT),
249   - ParentSource(Actor::Property::SIZE),
250   - ConfinementConstraint(ParentOrigin::CENTER, Vector2::ONE * MAGNIFIER_INDENT, Vector2::ONE * MAGNIFIER_INDENT));
  237 + Constraint constraint = Constraint::New<Vector3>( mMagnifier, Actor::Property::POSITION, ConfinementConstraint(ParentOrigin::CENTER, Vector2::ONE * MAGNIFIER_INDENT, Vector2::ONE * MAGNIFIER_INDENT) );
  238 + constraint.AddSource( LocalSource(Actor::Property::SIZE) );
  239 + constraint.AddSource( LocalSource(Actor::Property::PARENT_ORIGIN) );
  240 + constraint.AddSource( LocalSource(Actor::Property::ANCHOR_POINT) );
  241 + constraint.AddSource( ParentSource(Actor::Property::SIZE) );
251 242 constraint.SetRemoveAction(Constraint::Discard);
252   - mMagnifier.ApplyConstraint( constraint );
  243 + constraint.Apply();
253 244  
254 245 // Create bouncing magnifier automatically bounces around screen.
255 246 mBouncingMagnifier = Toolkit::Magnifier::New();
... ... @@ -263,18 +254,16 @@ public:
263 254 ContinueAnimation();
264 255  
265 256 // Apply constraint to animate the position of the magnifier.
266   - constraint = Constraint::New<Vector3>(Actor::Property::POSITION,
267   - LocalSource(Actor::Property::SIZE),
268   - LocalSource(mAnimationTimeProperty),
269   - MagnifierPathConstraint(mStageSize, mStageSize * 0.5f));
270   - mBouncingMagnifier.ApplyConstraint( constraint );
  257 + constraint = Constraint::New<Vector3>( mBouncingMagnifier, Actor::Property::POSITION, MagnifierPathConstraint(mStageSize, mStageSize * 0.5f) );
  258 + constraint.AddSource( LocalSource(Actor::Property::SIZE) );
  259 + constraint.AddSource( LocalSource(mAnimationTimeProperty) );
  260 + constraint.Apply();
271 261  
272 262 // Apply constraint to animate the source of the magnifier.
273   - constraint = Constraint::New<Vector3>(mBouncingMagnifier.GetPropertyIndex( Toolkit::Magnifier::SOURCE_POSITION_PROPERTY_NAME ),
274   - LocalSource(Actor::Property::SIZE),
275   - LocalSource(mAnimationTimeProperty),
276   - MagnifierPathConstraint(mStageSize));
277   - mBouncingMagnifier.ApplyConstraint( constraint );
  263 + constraint = Constraint::New<Vector3>( mBouncingMagnifier, mBouncingMagnifier.GetPropertyIndex( Toolkit::Magnifier::SOURCE_POSITION_PROPERTY_NAME ), MagnifierPathConstraint(mStageSize) );
  264 + constraint.AddSource( LocalSource(Actor::Property::SIZE) );
  265 + constraint.AddSource( LocalSource(mAnimationTimeProperty) );
  266 + constraint.Apply();
278 267 }
279 268  
280 269 /**
... ...
examples/motion-blur/motion-blur-example.cpp
... ... @@ -509,7 +509,6 @@ private:
509 509 Application& mApplication; ///< Application instance
510 510 Toolkit::View mView;
511 511 Toolkit::ToolBar mToolBar;
512   - TextView mTitleActor; ///< The Toolbar's Title.
513 512 Image mIconEffectsOff;
514 513 Image mIconEffectsOn;
515 514  
... ...
examples/motion-stretch/motion-stretch-example.cpp
... ... @@ -124,6 +124,8 @@ public:
124 124 {
125 125 // The Init signal is received once (only) during the Application lifetime
126 126  
  127 + DemoHelper::RequestThemeChange();
  128 +
127 129 Stage::GetCurrent().KeyEventSignal().Connect(this, &MotionStretchExampleApp::OnKeyEvent);
128 130  
129 131 // Creates a default view with a default tool bar.
... ... @@ -400,7 +402,6 @@ private:
400 402 Application& mApplication; ///< Application instance
401 403 Toolkit::View mView;
402 404 Toolkit::ToolBar mToolBar;
403   - TextView mTitleActor; ///< The Toolbar's Title.
404 405 Image mIconEffectsOff;
405 406 Image mIconEffectsOn;
406 407 Layer mContentLayer; ///< Content layer (contains actor for this stretch demo)
... ...
examples/new-window/new-window-example.cpp
... ... @@ -80,7 +80,7 @@ public:
80 80 private:
81 81 Application mApplication;
82 82 Actor mCastingLight;
83   - TextActor mTextActor;
  83 + TextLabel mTextActor;
84 84 ImageActor mImageActor;
85 85 ImageActor mBlendActor;
86 86 Image mEffectImage;
... ... @@ -90,7 +90,7 @@ private:
90 90  
91 91 Toolkit::View mView; ///< The View instance.
92 92 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
93   - TextView mTitleActor; ///< The Toolbar's Title.
  93 + TextLabel mTitleActor; ///< The Toolbar's Title.
94 94 Layer mContentLayer; ///< Content layer (scrolling cluster content)
95 95 Toolkit::PushButton mLoseContextButton;
96 96 Vector3 mHSVDelta;
... ... @@ -116,6 +116,8 @@ NewWindowController::NewWindowController( Application&amp; application )
116 116  
117 117 void NewWindowController::Create( Application& app )
118 118 {
  119 + DemoHelper::RequestThemeChange();
  120 +
119 121 Stage stage = Stage::GetCurrent();
120 122 stage.SetBackgroundColor(Color::YELLOW);
121 123  
... ... @@ -379,7 +381,7 @@ void NewWindowController::CreateBlending()
379 381  
380 382 void NewWindowController::CreateText()
381 383 {
382   - mTextActor = TextActor::New("Some text");
  384 + mTextActor = TextLabel::New("Some text");
383 385 mTextActor.SetParentOrigin(ParentOrigin::CENTER);
384 386 mTextActor.SetColor(Color::RED);
385 387 mTextActor.SetName("PushMe text");
... ...
examples/page-turn-view/page-turn-view-example.cpp
... ... @@ -22,6 +22,8 @@
22 22 #include <string.h>
23 23 #include <iostream>
24 24  
  25 +#include "shared/view.h"
  26 +
25 27 using namespace Dali;
26 28 using namespace Dali::Toolkit;
27 29  
... ... @@ -226,6 +228,8 @@ void PageTurnController::OnInit( Application&amp; app )
226 228 {
227 229 // The Init signal is received once ( only ) during the Application lifetime
228 230  
  231 + DemoHelper::RequestThemeChange();
  232 +
229 233 Stage::GetCurrent().KeyEventSignal().Connect(this, &PageTurnController::OnKeyEvent);
230 234  
231 235 Stage stage = Stage::GetCurrent();
... ...
examples/path-animation/path-animation.cpp
... ... @@ -64,9 +64,10 @@ public:
64 64 */
65 65 Actor CreateVectorComponentControl( const std::string& label, const Vector3& size, bool(PathController::*callback)(Slider,float) )
66 66 {
67   - Dali::TextActor textActor = TextActor::New(label);
68   - textActor.SetColor( Vector4(0.0f,0.0f,0.0f,1.0f));
69   - textActor.SetSize(size.y,size.y,0.0f);
  67 + TextLabel text = TextLabel::New(label);
  68 + text.SetResizePolicy( USE_NATURAL_SIZE, WIDTH );
  69 + text.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  70 + text.SetColor( Vector4(0.0f,0.0f,0.0f,1.0f));
70 71  
71 72 Slider slider = Slider::New();
72 73 slider.SetRelayoutEnabled( false );
... ... @@ -88,8 +89,8 @@ public:
88 89 slider.SetSize(size);
89 90 slider.SetScale( 0.5f );
90 91 slider.ValueChangedSignal().Connect(this,callback);
91   - textActor.Add( slider );
92   - return textActor;
  92 + text.Add( slider );
  93 + return text;
93 94 }
94 95  
95 96 /**
... ... @@ -437,6 +438,8 @@ public:
437 438 */
438 439 void Create( Application& application )
439 440 {
  441 + DemoHelper::RequestThemeChange();
  442 +
440 443 // Get a handle to the stage:
441 444 Stage stage = Stage::GetCurrent();
442 445  
... ... @@ -456,12 +459,8 @@ public:
456 459 mContentLayer.TouchedSignal().Connect(this, &PathController::OnTouchLayer);
457 460  
458 461 //Title
459   - TextView title = TextView::New();
  462 + TextLabel title = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE );
460 463 toolBar.AddControl( title, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
461   - Font font = Font::New();
462   - title.SetText( APPLICATION_TITLE );
463   - title.SetSize( font.MeasureText( APPLICATION_TITLE ) );
464   - title.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
465 464  
466 465 //Path
467 466 mPath = Dali::Path::New();
... ...
examples/radial-menu/radial-menu-example.cpp
... ... @@ -121,6 +121,8 @@ RadialMenuExample::~RadialMenuExample()
121 121  
122 122 void RadialMenuExample::OnInit(Application& app)
123 123 {
  124 + DemoHelper::RequestThemeChange();
  125 +
124 126 Stage stage = Dali::Stage::GetCurrent();
125 127  
126 128 // The Init signal is received once (only) during the Application lifetime
... ...
examples/radial-menu/radial-sweep-view-impl.cpp
... ... @@ -26,9 +26,8 @@ namespace
26 26 * Method to project a point on a circle of radius halfSide at given
27 27 * angle onto a square of side 2 * halfSide
28 28 */
29   -Vector3 CircleSquareProjection( Degree angle, float halfSide )
  29 +void CircleSquareProjection( Vector3& position, Degree angle, float halfSide )
30 30 {
31   - Vector3 position(0.0f, 0.0f, 0.0f);
32 31 Radian angleInRadians(angle);
33 32  
34 33 // 135 90 45
... ... @@ -58,7 +57,8 @@ Vector3 CircleSquareProjection( Degree angle, float halfSide )
58 57 position.x = halfSide;
59 58 position.y = -halfSide * sinf(angleInRadians) / cosf(angleInRadians);
60 59 }
61   - return position;
  60 +
  61 + position.z = 0.0f;
62 62 }
63 63  
64 64 float HoldZeroFastEaseInOutHoldOne(float progress)
... ... @@ -88,9 +88,9 @@ struct SquareFanConstraint
88 88 {
89 89 }
90 90  
91   - Vector3 operator()( const Vector3& current, const PropertyInput& start, const PropertyInput& rotation )
  91 + void operator()( Vector3& current, const PropertyInputContainer& inputs )
92 92 {
93   - float degree = fmodf((start.GetFloat() + rotation.GetFloat()), 360.0f);
  93 + float degree = fmodf((inputs[0]->GetFloat() + inputs[1]->GetFloat()), 360.0f);
94 94 if(degree < 0.0f)
95 95 {
96 96 degree += 360.0f;
... ... @@ -100,15 +100,17 @@ struct SquareFanConstraint
100 100 float endAngle = (90.0f*mSideIndex)+45.0f;
101 101 if(degree < startAngle)
102 102 {
103   - return Vector3::ZERO;
  103 + current = Vector3::ZERO;
104 104 }
105   - else if( degree >= endAngle )
  105 + else
106 106 {
107   - degree = endAngle;
  107 + if( degree >= endAngle )
  108 + {
  109 + degree = endAngle;
  110 + }
  111 + CircleSquareProjection( current, Degree(degree), 0.5f );
  112 + current.x = -current.x; // Inverting X makes the animation go anti clockwise from left center
108 113 }
109   - Vector3 pos = CircleSquareProjection(Degree(degree), 0.5f);
110   - pos.x = -pos.x; // Inverting X makes the animation go anti clockwise from left center
111   - return pos;
112 114 }
113 115  
114 116 int mSideIndex;
... ... @@ -362,18 +364,35 @@ void RadialSweepViewImpl::CreateStencil( Degree initialSector )
362 364  
363 365 // Constrain the vertices of the square mesh to sweep out a sector as the
364 366 // rotation angle is animated.
365   - mMesh.ApplyConstraint(Constraint::New<Vector3>( mMesh.GetPropertyIndex(1, AnimatableVertex::Property::POSITION),
366   - srcStart, srcStart, SquareFanConstraint(0)));
367   - mMesh.ApplyConstraint(Constraint::New<Vector3>( mMesh.GetPropertyIndex(2, AnimatableVertex::Property::POSITION),
368   - srcStart, srcRot, SquareFanConstraint(0)));
369   - mMesh.ApplyConstraint(Constraint::New<Vector3>( mMesh.GetPropertyIndex(3, AnimatableVertex::Property::POSITION),
370   - srcStart, srcRot, SquareFanConstraint(1)));
371   - mMesh.ApplyConstraint(Constraint::New<Vector3>( mMesh.GetPropertyIndex(4, AnimatableVertex::Property::POSITION),
372   - srcStart, srcRot, SquareFanConstraint(2)));
373   - mMesh.ApplyConstraint(Constraint::New<Vector3>( mMesh.GetPropertyIndex(5, AnimatableVertex::Property::POSITION),
374   - srcStart, srcRot, SquareFanConstraint(3)));
375   - mMesh.ApplyConstraint(Constraint::New<Vector3>( mMesh.GetPropertyIndex(6, AnimatableVertex::Property::POSITION),
376   - srcStart, srcRot, SquareFanConstraint(4)));
  367 + Constraint constraint = Constraint::New<Vector3>( mMesh, mMesh.GetPropertyIndex(1, AnimatableVertex::Property::POSITION), SquareFanConstraint(0) );
  368 + constraint.AddSource( srcStart );
  369 + constraint.AddSource( srcStart );
  370 + constraint.Apply();
  371 +
  372 + constraint = Constraint::New<Vector3>( mMesh, mMesh.GetPropertyIndex(2, AnimatableVertex::Property::POSITION), SquareFanConstraint(0) );
  373 + constraint.AddSource( srcStart );
  374 + constraint.AddSource( srcRot );
  375 + constraint.Apply();
  376 +
  377 + constraint = Constraint::New<Vector3>( mMesh, mMesh.GetPropertyIndex(3, AnimatableVertex::Property::POSITION), SquareFanConstraint(1) );
  378 + constraint.AddSource( srcStart );
  379 + constraint.AddSource( srcRot );
  380 + constraint.Apply();
  381 +
  382 + constraint = Constraint::New<Vector3>( mMesh, mMesh.GetPropertyIndex(4, AnimatableVertex::Property::POSITION), SquareFanConstraint(2) );
  383 + constraint.AddSource( srcStart );
  384 + constraint.AddSource( srcRot );
  385 + constraint.Apply();
  386 +
  387 + constraint = Constraint::New<Vector3>( mMesh, mMesh.GetPropertyIndex(5, AnimatableVertex::Property::POSITION), SquareFanConstraint(3) );
  388 + constraint.AddSource( srcStart );
  389 + constraint.AddSource( srcRot );
  390 + constraint.Apply();
  391 +
  392 + constraint = Constraint::New<Vector3>( mMesh, mMesh.GetPropertyIndex(6, AnimatableVertex::Property::POSITION), SquareFanConstraint(4) );
  393 + constraint.AddSource( srcStart );
  394 + constraint.AddSource( srcRot );
  395 + constraint.Apply();
377 396  
378 397 mStencilActor.SetDrawMode( DrawMode::STENCIL );
379 398 mStencilActor.SetPositionInheritanceMode(USE_PARENT_POSITION);
... ...
examples/refraction-effect/refraction-effect-example.cpp
... ... @@ -56,10 +56,13 @@ struct LightOffsetConstraint
56 56 {
57 57 }
58 58  
59   - Vector2 operator()( const Vector2& current, const PropertyInput& spinAngleProperty)
  59 + void operator()( Vector2& current, const PropertyInputContainer& inputs )
60 60 {
61   - float spinAngle = spinAngleProperty.GetFloat();
62   - return Vector2( cos(spinAngle ), sin( spinAngle ) ) * mRadius;
  61 + float spinAngle = inputs[0]->GetFloat();
  62 + current.x = cos( spinAngle );
  63 + current.y = sin( spinAngle );
  64 +
  65 + current *= mRadius;
63 66 }
64 67  
65 68 float mRadius;
... ... @@ -254,10 +257,9 @@ public:
254 257 handle.SetUniform( "uLightIntensity", 2.5f );
255 258  
256 259 Dali::Property::Index index = handle.RegisterProperty( "uSpinAngle", 0.f );
257   - Constraint constraint = Constraint::New<Vector2>( handle.GetPropertyIndex("uLightSpinOffset"),
258   - LocalSource(index),
259   - LightOffsetConstraint(stageSize.x*0.1f));
260   - handle.ApplyConstraint( constraint );
  260 + Constraint constraint = Constraint::New<Vector2>( handle, handle.GetPropertyIndex("uLightSpinOffset"), LightOffsetConstraint(stageSize.x*0.1f) );
  261 + constraint.AddSource( LocalSource(index) );
  262 + constraint.Apply();
261 263  
262 264 return handle;
263 265 }
... ... @@ -318,6 +320,8 @@ private:
318 320 // The Init signal is received once (only) during the Application lifetime
319 321 void Create(Application& application)
320 322 {
  323 + DemoHelper::RequestThemeChange();
  324 +
321 325 Stage stage = Stage::GetCurrent();
322 326 mStageHalfSize = stage.GetSize() * 0.5f;
323 327  
... ...
examples/scripting/launcher.cpp
... ... @@ -23,9 +23,12 @@
23 23 #include <sys/stat.h>
24 24 #include <dali/integration-api/debug.h>
25 25  
  26 +// INTERNAL INCLUDES
  27 +#include "shared/view.h"
26 28  
27 29  
28 30 using namespace Dali;
  31 +using namespace Dali::Toolkit;
29 32  
30 33 #define TOKEN_STRING(x) #x
31 34  
... ... @@ -55,7 +58,9 @@ Launcher::~Launcher()
55 58  
56 59 void Launcher::Create( Dali::Application& application )
57 60 {
58   - TextActor textActor = TextActor::New( "JSON & JavaScript Launcher..." );
  61 + DemoHelper::RequestThemeChange();
  62 +
  63 + TextLabel textActor = TextLabel::New( "JSON & JavaScript Launcher..." );
59 64  
60 65 // Reposition the actor
61 66 textActor.SetParentOrigin( ParentOrigin::TOP_LEFT );
... ...
examples/scroll-view/scroll-view-example.cpp
... ... @@ -179,6 +179,8 @@ public:
179 179 */
180 180 void OnInit(Application& app)
181 181 {
  182 + DemoHelper::RequestThemeChange();
  183 +
182 184 Stage stage = Dali::Stage::GetCurrent();
183 185 stage.KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent);
184 186  
... ... @@ -640,15 +642,12 @@ private:
640 642 {
641 643 if(!mTitleActor)
642 644 {
643   - mTitleActor = TextView::New();
  645 + mTitleActor = DemoHelper::CreateToolBarLabel( "" );
644 646 // Add title to the tool bar.
645 647 mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
646 648 }
647 649  
648   - Font font = Font::New();
649   - mTitleActor.SetText( title );
650   - mTitleActor.SetSize( font.MeasureText( title ) );
651   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
  650 + mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, title );
652 651 }
653 652  
654 653 /**
... ... @@ -670,7 +669,7 @@ private:
670 669 Application& mApplication; ///< Application instance
671 670 Toolkit::View mView; ///< The View instance.
672 671 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
673   - TextView mTitleActor; ///< The Toolbar's Title.
  672 + TextLabel mTitleActor; ///< The Toolbar's Title.
674 673 Layer mContentLayer; ///< The content layer (contains game actors)
675 674 ScrollView mScrollView; ///< ScrollView UI Component
676 675 bool mScrolling; ///< ScrollView scrolling state (true = scrolling, false = stationary)
... ...
examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp
... ... @@ -100,23 +100,10 @@ public:
100 100 {
101 101 }
102 102  
103   - Vector3 operator()( const Vector3& current, const PropertyInput& property )
  103 + void operator()( Vector3& current, const PropertyInputContainer& inputs )
104 104 {
105   - Vector3 position = property.GetVector3();
106   - position.z += 1.0f;
107   - return position;
108   - }
109   - };
110   -
111   - struct QuaternionEqualToConstraint
112   - {
113   - QuaternionEqualToConstraint()
114   - {
115   - }
116   -
117   - Quaternion operator()( const Quaternion& current, const PropertyInput& property )
118   - {
119   - return property.GetQuaternion();
  105 + current = inputs[0]->GetVector3();
  106 + current.z += 1.0f;
120 107 }
121 108 };
122 109  
... ... @@ -127,10 +114,10 @@ public:
127 114 {
128 115 }
129 116  
130   - Quaternion operator()( const Quaternion& current, const PropertyInput& property )
  117 + void operator()( Quaternion& current, const PropertyInputContainer& inputs )
131 118 {
132   - Degree angle(property.GetFloat());
133   - return Quaternion( Radian(angle) * mSign, Vector3::YAXIS );
  119 + Degree angle( inputs[0]->GetFloat() );
  120 + current = Quaternion( Radian(angle) * mSign, Vector3::YAXIS );
134 121 }
135 122  
136 123 float mSign;
... ... @@ -141,6 +128,8 @@ public:
141 128 */
142 129 void Create(Application& app)
143 130 {
  131 + DemoHelper::RequestThemeChange();
  132 +
144 133 srand(0); // Want repeatable path
145 134  
146 135 Stage::GetCurrent().KeyEventSignal().Connect(this, &TestApp::OnKeyEvent);
... ... @@ -170,13 +159,11 @@ public:
170 159 toolBar.AddControl( effectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
171 160  
172 161 // Add title to the tool bar.
173   - mTitleActor = Toolkit::TextView::New();
  162 + mTitleActor = DemoHelper::CreateToolBarLabel( "" );
174 163 toolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter );
175 164  
176 165 // Set Title text
177   - mTitleActor.SetText( APPLICATION_TITLE_PAN_SCENE );
178   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_PAN_SCENE ) );
179   - mTitleActor.SetStyleToCurrentText( DemoHelper::GetDefaultTextStyle() );
  166 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_PAN_SCENE) );
180 167  
181 168 //Add a reset button
182 169 Image resetImage = ResourceImage::New( RESET_ICON );
... ... @@ -245,14 +232,8 @@ public:
245 232 mCastingLight.SetAnchorPoint(AnchorPoint::CENTER);
246 233 mCastingLight.SetPosition( Vector3( 0.0f, 0.0f, 800.0f ) * scaleFactor );
247 234  
248   - TextStyle style;
249   - style.SetFontPointSize( PointSize(DemoHelper::ScalePointSize(20.0f)) );
250   - style.SetFontName("Times New Roman");
251   - style.SetFontStyle("Book");
252   -
253   - TextActorParameters parameters( style, TextActorParameters::FONT_DETECTION_ON );
254   - TextActor text = TextActor::New("Light", parameters);
255   - text.SetColor(Color::BLUE);
  235 + TextLabel text = TextLabel::New( "Light" );
  236 + text.SetColor( Color::BLUE );
256 237  
257 238 mCastingLight.Add(text);
258 239 mLightAnchor.Add(mCastingLight);
... ... @@ -290,10 +271,14 @@ public:
290 271  
291 272 Property::Index angleIndex = mImageActor2.RegisterProperty("angle", Property::Value(30.0f));
292 273 Source angleSrc( mImageActor2, angleIndex );
293   - mImageActor1.ApplyConstraint(Constraint::New<Quaternion>( Actor::Property::ORIENTATION, angleSrc,
294   - RotationConstraint(-1.0f)));
295   - mImageActor3.ApplyConstraint(Constraint::New<Quaternion>( Actor::Property::ORIENTATION, angleSrc,
296   - RotationConstraint(+1.0f)));
  274 +
  275 + Constraint constraint = Constraint::New<Quaternion>( mImageActor1, Actor::Property::ORIENTATION, RotationConstraint(-1.0f) );
  276 + constraint.AddSource( angleSrc );
  277 + constraint.Apply();
  278 +
  279 + constraint = Constraint::New<Quaternion>( mImageActor3, Actor::Property::ORIENTATION, RotationConstraint(+1.0f) );
  280 + constraint.AddSource( angleSrc );
  281 + constraint.Apply();
297 282  
298 283 mSceneAnimation = Animation::New(2.5f);
299 284  
... ... @@ -428,30 +413,24 @@ public:
428 413 {
429 414 case PAN_SCENE:
430 415 mPanState = ROTATE_SCENE;
431   - mTitleActor.SetText( APPLICATION_TITLE_ROTATE_SCENE );
432   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_ROTATE_SCENE ) );
  416 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_ROTATE_SCENE) );
433 417 break;
434 418 case ROTATE_SCENE:
435 419 mPanState = PAN_LIGHT;
436   - mTitleActor.SetText( APPLICATION_TITLE_PAN_LIGHT );
437   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_PAN_LIGHT ) );
  420 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_PAN_LIGHT) );
438 421 break;
439 422 case PAN_LIGHT:
440 423 mPanState = PAN_OBJECT;
441   - mTitleActor.SetText( APPLICATION_TITLE_PAN_OBJECT );
442   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_PAN_OBJECT ) );
  424 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_PAN_OBJECT) );
443 425 break;
444 426 case PAN_OBJECT:
445 427 mPanState = PAN_SCENE;
446   - mTitleActor.SetText( APPLICATION_TITLE_PAN_SCENE );
447   - mTitleActor.SetSize( Font::New().MeasureText( APPLICATION_TITLE_PAN_SCENE ) );
  428 + mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_PAN_SCENE) );
448 429 break;
449 430 default:
450 431 break;
451 432 }
452 433  
453   - mTitleActor.SetStyleToCurrentText(DemoHelper::GetDefaultTextStyle());
454   -
455 434 return true;
456 435 }
457 436  
... ... @@ -501,7 +480,7 @@ private:
501 480 Property::Index mAngle1Index;
502 481 Property::Index mAngle3Index;
503 482  
504   - Toolkit::TextView mTitleActor;
  483 + Toolkit::TextLabel mTitleActor;
505 484  
506 485 enum PanState
507 486 {
... ...
examples/size-negotiation/size-negotiation-example.cpp
... ... @@ -21,6 +21,8 @@
21 21  
22 22 using namespace Dali;
23 23  
  24 +using Dali::Toolkit::TextLabel;
  25 +
24 26 // Define this so that it is interchangeable
25 27 // "DP" stands for Device independent Pixels
26 28 #define DP(x) DemoHelper::ScalePointSize(x)
... ... @@ -155,6 +157,8 @@ public:
155 157 {
156 158 // The Init signal is received once (only) during the Application lifetime
157 159  
  160 + DemoHelper::RequestThemeChange();
  161 +
158 162 Stage stage = Stage::GetCurrent();
159 163  
160 164 // Respond to key events
... ... @@ -169,8 +173,7 @@ public:
169 173 TOOLBAR_IMAGE,
170 174 std::string("") );
171 175  
172   - mTitleActor = Dali::Toolkit::TextView::New();
173   - mTitleActor.SetName( "CUSTOM_TOOLBAR_TITLE" );
  176 + mTitleActor = DemoHelper::CreateToolBarLabel( "CUSTOM_TOOLBAR_TITLE" );
174 177  
175 178 SetTitle();
176 179  
... ... @@ -231,8 +234,7 @@ public:
231 234 }
232 235 }
233 236  
234   - mTitleActor.SetText( std::string( TOOLBAR_TITLE ) + ": " + subTitle );
235   - mTitleActor.SetStyleToCurrentText( DemoHelper::GetDefaultTextStyle() );
  237 + mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, std::string( std::string( TOOLBAR_TITLE ) + ": " + subTitle ) );
236 238 }
237 239  
238 240 bool OnMenu( Toolkit::Button button )
... ... @@ -341,9 +343,6 @@ public:
341 343 {
342 344 mPopup = CreatePopup();
343 345  
344   - // The popup is not yet on the stage so needs to be flaged as dirty
345   - mPopup.MarkDirtyForRelayout();
346   -
347 346 mPopup.Show();
348 347 }
349 348 else if( button.GetName() == POPUP_BUTTON_TITLE_ID )
... ... @@ -351,9 +350,6 @@ public:
351 350 mPopup = CreatePopup();
352 351 mPopup.SetTitle( "Popup!" );
353 352  
354   - // The popup is not yet on the stage so needs to be flaged as dirty
355   - mPopup.MarkDirtyForRelayout();
356   -
357 353 mPopup.Show();
358 354 }
359 355 else if( button.GetName() == POPUP_BUTTON_BUTTONS_1_ID )
... ... @@ -370,9 +366,6 @@ public:
370 366  
371 367 mPopup.AddButton( okayButton );
372 368  
373   - // The popup is not yet on the stage so needs to be flaged as dirty
374   - mPopup.MarkDirtyForRelayout();
375   -
376 369 mPopup.Show();
377 370 }
378 371 else if( button.GetName() == POPUP_BUTTON_BUTTONS_2_ID )
... ... @@ -399,9 +392,6 @@ public:
399 392  
400 393 mPopup.AddButton( okayButton );
401 394  
402   - // The popup is not yet on the stage so needs to be flaged as dirty
403   - mPopup.MarkDirtyForRelayout();
404   -
405 395 mPopup.Show();
406 396 }
407 397 else if( button.GetName() == POPUP_BUTTON_TITLE_BUTTONS_ID )
... ... @@ -429,30 +419,22 @@ public:
429 419  
430 420 mPopup.AddButton( okayButton );
431 421  
432   - // The popup is not yet on the stage so needs to be flaged as dirty
433   - mPopup.MarkDirtyForRelayout();
434   -
435 422 mPopup.Show();
436 423 }
437 424 else if( button.GetName() == POPUP_BUTTON_CONTENT_TEXT_ID )
438 425 {
439 426 mPopup = CreatePopup();
440 427  
441   - Toolkit::TextView text = Toolkit::TextView::New();
  428 + TextLabel text = TextLabel::New( CONTENT_TEXT );
442 429 text.SetName( "POPUP_CONTENT_TEXT" );
443   - text.SetText( CONTENT_TEXT );
444   - text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
445   - text.SetWidthExceedPolicy( Toolkit::TextView::Split );
446   - text.SetLineJustification( Toolkit::TextView::Center );
447   - text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
448   - text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
  430 + text.SetProperty( TextLabel::Property::MULTI_LINE, true );
  431 + text.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
  432 + text.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
  433 + text.SetResizePolicy( FILL_TO_PARENT, Dali::HEIGHT );
449 434 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
450 435  
451 436 mPopup.Add( text );
452 437  
453   - // The popup is not yet on the stage so needs to be flaged as dirty
454   - mPopup.MarkDirtyForRelayout();
455   -
456 438 mPopup.Show();
457 439 }
458 440 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID )
... ... @@ -466,9 +448,6 @@ public:
466 448  
467 449 mPopup.Add( image );
468 450  
469   - // The popup is not yet on the stage so needs to be flaged as dirty
470   - mPopup.MarkDirtyForRelayout();
471   -
472 451 mPopup.Show();
473 452 }
474 453 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_SCALE_ID )
... ... @@ -483,9 +462,6 @@ public:
483 462  
484 463 mPopup.Add( image );
485 464  
486   - // The popup is not yet on the stage so needs to be flaged as dirty
487   - mPopup.MarkDirtyForRelayout();
488   -
489 465 mPopup.Show();
490 466 }
491 467 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FIT_ID )
... ... @@ -501,9 +477,6 @@ public:
501 477  
502 478 mPopup.Add( image );
503 479  
504   - // The popup is not yet on the stage so needs to be flaged as dirty
505   - mPopup.MarkDirtyForRelayout();
506   -
507 480 mPopup.Show();
508 481 }
509 482 else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_FILL_ID )
... ... @@ -519,9 +492,6 @@ public:
519 492  
520 493 mPopup.Add( image );
521 494  
522   - // The popup is not yet on the stage so needs to be flaged as dirty
523   - mPopup.MarkDirtyForRelayout();
524   -
525 495 mPopup.Show();
526 496 }
527 497 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_ID )
... ... @@ -529,21 +499,14 @@ public:
529 499 mPopup = CreatePopup();
530 500 mPopup.SetTitle( "Popup!" );
531 501  
532   - Toolkit::TextView text = Toolkit::TextView::New();
  502 + Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
533 503 text.SetName( "POPUP_CONTENT_TEXT" );
534   - text.SetText( CONTENT_TEXT );
535   - text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
536   - text.SetWidthExceedPolicy( Toolkit::TextView::Split );
537   - text.SetLineJustification( Toolkit::TextView::Center );
538 504 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
539 505 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
540 506 text.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) );
541 507  
542 508 mPopup.Add( text );
543 509  
544   - // The popup is not yet on the stage so needs to be flaged as dirty
545   - mPopup.MarkDirtyForRelayout();
546   -
547 510 mPopup.Show();
548 511 }
549 512 else if( button.GetName() == POPUP_BUTTON_TITLE_CONTENT_TEXT_BUTTONS_ID )
... ... @@ -551,12 +514,8 @@ public:
551 514 mPopup = CreatePopup();
552 515 mPopup.SetTitle( "Popup!" );
553 516  
554   - Toolkit::TextView text = Toolkit::TextView::New();
  517 + Toolkit::TextLabel text = Toolkit::TextLabel::New( CONTENT_TEXT );
555 518 text.SetName( "POPUP_CONTENT_TEXT" );
556   - text.SetText( CONTENT_TEXT );
557   - text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
558   - text.SetWidthExceedPolicy( Toolkit::TextView::Split );
559   - text.SetLineJustification( Toolkit::TextView::Left );
560 519 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
561 520 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
562 521 text.SetPadding( Padding( 10.0f, 10.0f, 20.0f, 0.0f ) );
... ... @@ -583,9 +542,6 @@ public:
583 542  
584 543 mPopup.AddButton( okayButton );
585 544  
586   - // The popup is not yet on the stage so needs to be flaged as dirty
587   - mPopup.MarkDirtyForRelayout();
588   -
589 545 mPopup.Show();
590 546 }
591 547 else if( button.GetName() == POPUP_BUTTON_COMPLEX_ID )
... ... @@ -604,11 +560,7 @@ public:
604 560  
605 561 // Text
606 562 {
607   - Toolkit::TextView text = Toolkit::TextView::New();
608   - text.SetText( "Do you really want to quit?" );
609   - text.SetMultilinePolicy( Toolkit::TextView::SplitByWord );
610   - text.SetWidthExceedPolicy( Toolkit::TextView::Split );
611   - text.SetLineJustification( Toolkit::TextView::Left );
  563 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Do you really want to quit?" );
612 564 text.SetResizePolicy( FILL_TO_PARENT, WIDTH );
613 565 text.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
614 566  
... ... @@ -643,15 +595,13 @@ public:
643 595  
644 596 root.AddChild( checkBox, Toolkit::TableView::CellPosition( 0, 0 ) );
645 597  
646   - Toolkit::TextView text = Toolkit::TextView::New();
647   - text.SetText( "Don't show again" );
648   - text.SetLineJustification( Toolkit::TextView::Left );
  598 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Don't show again" );
649 599 Actor textActor = text;
650 600 textActor.SetPadding( Padding( 20.0f, 0.0f, 0.0f, 10.0f ) );
651 601  
652 602 root.AddChild( text, Toolkit::TableView::CellPosition( 0, 1 ) );
653 603  
654   - content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0, 0, 2 ) ); // Column span 2
  604 + content.AddChild( root, Toolkit::TableView::CellPosition( 1, 0 ) );
655 605 }
656 606  
657 607 mPopup.Add( content );
... ... @@ -677,9 +627,6 @@ public:
677 627  
678 628 mPopup.AddButton( okayButton );
679 629  
680   - // The popup is not yet on the stage so needs to be flaged as dirty
681   - mPopup.MarkDirtyForRelayout();
682   -
683 630 mPopup.Show();
684 631 }
685 632 else if( button.GetName() == TABLEVIEW_BUTTON_EMPTY_ID )
... ... @@ -694,9 +641,6 @@ public:
694 641  
695 642 mPopup.Add( table );
696 643  
697   - // The popup is not yet on the stage so needs to be flaged as dirty
698   - mPopup.MarkDirtyForRelayout();
699   -
700 644 mPopup.Show();
701 645 }
702 646 else if( button.GetName() == TABLEVIEW_BUTTON_1CELL_ID )
... ... @@ -716,9 +660,6 @@ public:
716 660  
717 661 mPopup.Add( table );
718 662  
719   - // The popup is not yet on the stage so needs to be flaged as dirty
720   - mPopup.MarkDirtyForRelayout();
721   -
722 663 mPopup.Show();
723 664 }
724 665 else if( button.GetName() == TABLEVIEW_BUTTON_3CELL_ID )
... ... @@ -749,9 +690,6 @@ public:
749 690  
750 691 mPopup.Add( table );
751 692  
752   - // The popup is not yet on the stage so needs to be flaged as dirty
753   - mPopup.MarkDirtyForRelayout();
754   -
755 693 mPopup.Show();
756 694 }
757 695 else if( button.GetName() == TABLEVIEW_BUTTON_3X3CELL_ID )
... ... @@ -817,9 +755,6 @@ public:
817 755  
818 756 mPopup.Add( table );
819 757  
820   - // The popup is not yet on the stage so needs to be flaged as dirty
821   - mPopup.MarkDirtyForRelayout();
822   -
823 758 mPopup.Show();
824 759 }
825 760 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED1_ID )
... ... @@ -836,7 +771,7 @@ public:
836 771 {
837 772 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
838 773 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
839   - TextActor text = TextActor::New( "Fixed" );
  774 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
840 775 text.SetAnchorPoint( AnchorPoint::CENTER );
841 776 text.SetParentOrigin( ParentOrigin::CENTER );
842 777 backing.Add( text );
... ... @@ -845,7 +780,7 @@ public:
845 780 {
846 781 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
847 782 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
848   - TextActor text = TextActor::New( "Fill" );
  783 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
849 784 text.SetAnchorPoint( AnchorPoint::CENTER );
850 785 text.SetParentOrigin( ParentOrigin::CENTER );
851 786 backing.Add( text );
... ... @@ -854,7 +789,7 @@ public:
854 789 {
855 790 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
856 791 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
857   - TextActor text = TextActor::New( "Fill" );
  792 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
858 793 text.SetAnchorPoint( AnchorPoint::CENTER );
859 794 text.SetParentOrigin( ParentOrigin::CENTER );
860 795 backing.Add( text );
... ... @@ -863,9 +798,6 @@ public:
863 798  
864 799 mPopup.Add( table );
865 800  
866   - // The popup is not yet on the stage so needs to be flaged as dirty
867   - mPopup.MarkDirtyForRelayout();
868   -
869 801 mPopup.Show();
870 802 }
871 803 else if( button.GetName() == TABLEVIEW_BUTTON_FIXED2_ID )
... ... @@ -883,7 +815,7 @@ public:
883 815 {
884 816 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
885 817 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
886   - TextActor text = TextActor::New( "Fixed" );
  818 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
887 819 text.SetAnchorPoint( AnchorPoint::CENTER );
888 820 text.SetParentOrigin( ParentOrigin::CENTER );
889 821 backing.Add( text );
... ... @@ -892,7 +824,7 @@ public:
892 824 {
893 825 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
894 826 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
895   - TextActor text = TextActor::New( "Fill" );
  827 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
896 828 text.SetAnchorPoint( AnchorPoint::CENTER );
897 829 text.SetParentOrigin( ParentOrigin::CENTER );
898 830 backing.Add( text );
... ... @@ -901,7 +833,7 @@ public:
901 833 {
902 834 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
903 835 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
904   - TextActor text = TextActor::New( "Fixed" );
  836 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
905 837 text.SetAnchorPoint( AnchorPoint::CENTER );
906 838 text.SetParentOrigin( ParentOrigin::CENTER );
907 839 backing.Add( text );
... ... @@ -910,9 +842,6 @@ public:
910 842  
911 843 mPopup.Add( table );
912 844  
913   - // The popup is not yet on the stage so needs to be flaged as dirty
914   - mPopup.MarkDirtyForRelayout();
915   -
916 845 mPopup.Show();
917 846 }
918 847 else if( button.GetName() == TABLEVIEW_BUTTON_FIT1_ID )
... ... @@ -932,7 +861,7 @@ public:
932 861 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
933 862 backing.SetSize( 0.0f, 100.0f );
934 863  
935   - TextActor text = TextActor::New( "Fit" );
  864 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
936 865 text.SetAnchorPoint( AnchorPoint::CENTER );
937 866 text.SetParentOrigin( ParentOrigin::CENTER );
938 867 backing.Add( text );
... ... @@ -943,7 +872,7 @@ public:
943 872 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
944 873 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
945 874  
946   - TextActor text = TextActor::New( "Fill" );
  875 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
947 876 text.SetAnchorPoint( AnchorPoint::CENTER );
948 877 text.SetParentOrigin( ParentOrigin::CENTER );
949 878 backing.Add( text );
... ... @@ -955,7 +884,7 @@ public:
955 884 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
956 885 backing.SetSize( 0.0f, 100.0f );
957 886  
958   - TextActor text = TextActor::New( "Fit" );
  887 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
959 888 text.SetAnchorPoint( AnchorPoint::CENTER );
960 889 text.SetParentOrigin( ParentOrigin::CENTER );
961 890 backing.Add( text );
... ... @@ -965,9 +894,6 @@ public:
965 894  
966 895 mPopup.Add( table );
967 896  
968   - // The popup is not yet on the stage so needs to be flaged as dirty
969   - mPopup.MarkDirtyForRelayout();
970   -
971 897 mPopup.Show();
972 898 }
973 899 else if( button.GetName() == TABLEVIEW_BUTTON_FIT2_ID )
... ... @@ -984,7 +910,7 @@ public:
984 910 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
985 911 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
986 912  
987   - TextActor text = TextActor::New( "Fill" );
  913 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
988 914 text.SetAnchorPoint( AnchorPoint::CENTER );
989 915 text.SetParentOrigin( ParentOrigin::CENTER );
990 916 backing.Add( text );
... ... @@ -996,7 +922,7 @@ public:
996 922 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
997 923 backing.SetSize( 0.0f, 200.0f );
998 924  
999   - TextActor text = TextActor::New( "Fit" );
  925 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1000 926 text.SetAnchorPoint( AnchorPoint::CENTER );
1001 927 text.SetParentOrigin( ParentOrigin::CENTER );
1002 928 backing.Add( text );
... ... @@ -1007,7 +933,7 @@ public:
1007 933 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 0.0f, 1.0f, 0.0f, 1.0f ) );
1008 934 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1009 935  
1010   - TextActor text = TextActor::New( "Fill" );
  936 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fill" );
1011 937 text.SetAnchorPoint( AnchorPoint::CENTER );
1012 938 text.SetParentOrigin( ParentOrigin::CENTER );
1013 939 backing.Add( text );
... ... @@ -1017,9 +943,6 @@ public:
1017 943  
1018 944 mPopup.Add( table );
1019 945  
1020   - // The popup is not yet on the stage so needs to be flaged as dirty
1021   - mPopup.MarkDirtyForRelayout();
1022   -
1023 946 mPopup.Show();
1024 947 }
1025 948 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL1_ID )
... ... @@ -1041,7 +964,7 @@ public:
1041 964 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1042 965 backing.SetSize( 0.0f, 100.0f );
1043 966  
1044   - TextActor text = TextActor::New( "Fit" );
  967 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1045 968 text.SetAnchorPoint( AnchorPoint::CENTER );
1046 969 text.SetParentOrigin( ParentOrigin::CENTER );
1047 970 backing.Add( text );
... ... @@ -1053,7 +976,7 @@ public:
1053 976 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1054 977 backing.SetSize( 0.0f, 200.0f );
1055 978  
1056   - TextActor text = TextActor::New( "Fit" );
  979 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1057 980 text.SetAnchorPoint( AnchorPoint::CENTER );
1058 981 text.SetParentOrigin( ParentOrigin::CENTER );
1059 982 backing.Add( text );
... ... @@ -1065,7 +988,7 @@ public:
1065 988 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1066 989 backing.SetSize( 0.0f, 300.0f );
1067 990  
1068   - TextActor text = TextActor::New( "Fit" );
  991 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1069 992 text.SetAnchorPoint( AnchorPoint::CENTER );
1070 993 text.SetParentOrigin( ParentOrigin::CENTER );
1071 994 backing.Add( text );
... ... @@ -1075,9 +998,6 @@ public:
1075 998  
1076 999 mPopup.Add( table );
1077 1000  
1078   - // The popup is not yet on the stage so needs to be flaged as dirty
1079   - mPopup.MarkDirtyForRelayout();
1080   -
1081 1001 mPopup.Show();
1082 1002 }
1083 1003 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL2_ID )
... ... @@ -1099,7 +1019,7 @@ public:
1099 1019 backing.SetResizePolicy( FIXED, HEIGHT );
1100 1020 backing.SetSize( 0.0f, 100.0f );
1101 1021  
1102   - TextActor text = TextActor::New( "Fit" );
  1022 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1103 1023 text.SetAnchorPoint( AnchorPoint::CENTER );
1104 1024 text.SetParentOrigin( ParentOrigin::CENTER );
1105 1025 backing.Add( text );
... ... @@ -1111,7 +1031,7 @@ public:
1111 1031 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1112 1032 backing.SetSize( 0.0f, 200.0f );
1113 1033  
1114   - TextActor text = TextActor::New( "Fit" );
  1034 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1115 1035 text.SetAnchorPoint( AnchorPoint::CENTER );
1116 1036 text.SetParentOrigin( ParentOrigin::CENTER );
1117 1037 backing.Add( text );
... ... @@ -1121,9 +1041,6 @@ public:
1121 1041  
1122 1042 mPopup.Add( table );
1123 1043  
1124   - // The popup is not yet on the stage so needs to be flaged as dirty
1125   - mPopup.MarkDirtyForRelayout();
1126   -
1127 1044 mPopup.Show();
1128 1045 }
1129 1046 else if( button.GetName() == TABLEVIEW_BUTTON_NATURAL3_ID )
... ... @@ -1143,7 +1060,7 @@ public:
1143 1060 Actor backing = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 0.0f, 0.0f, 1.0f ) );
1144 1061 backing.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
1145 1062  
1146   - TextActor text = TextActor::New( "Fixed" );
  1063 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fixed" );
1147 1064 text.SetAnchorPoint( AnchorPoint::CENTER );
1148 1065 text.SetParentOrigin( ParentOrigin::CENTER );
1149 1066 backing.Add( text );
... ... @@ -1155,7 +1072,7 @@ public:
1155 1072 backing.SetResizePolicy( FILL_TO_PARENT, WIDTH );
1156 1073 backing.SetSize( 0.0f, 200.0f );
1157 1074  
1158   - TextActor text = TextActor::New( "Fit" );
  1075 + Toolkit::TextLabel text = Toolkit::TextLabel::New( "Fit" );
1159 1076 text.SetAnchorPoint( AnchorPoint::CENTER );
1160 1077 text.SetParentOrigin( ParentOrigin::CENTER );
1161 1078 backing.Add( text );
... ... @@ -1165,9 +1082,6 @@ public:
1165 1082  
1166 1083 mPopup.Add( table );
1167 1084  
1168   - // The popup is not yet on the stage so needs to be flaged as dirty
1169   - mPopup.MarkDirtyForRelayout();
1170   -
1171 1085 mPopup.Show();
1172 1086 }
1173 1087 else if( button.GetName() == OKAY_BUTTON_ID || button.GetName() == CANCEL_BUTTON_ID )
... ... @@ -1291,7 +1205,7 @@ private:
1291 1205 Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
1292 1206 Layer mContentLayer; ///< Content layer
1293 1207  
1294   - Toolkit::TextView mTitleActor; ///< Title text
  1208 + Toolkit::TextLabel mTitleActor; ///< Title text
1295 1209  
1296 1210 Toolkit::Popup mMenu; ///< The navigation menu
1297 1211 bool mMenuShown; ///< If the navigation menu is currently being displayed or not
... ...
examples/text-field/text-field-example.cpp 0 → 100644
  1 +/*
  2 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +/**
  19 + * @file text-field-example.cpp
  20 + * @brief Basic usage of TextField control
  21 + */
  22 +
  23 +// EXTERNAL INCLUDES
  24 +#include <dali-toolkit/dali-toolkit.h>
  25 +#include <dali/public-api/text-abstraction/text-abstraction.h>
  26 +
  27 +// INTERNAL INCLUDES
  28 +#include "shared/view.h"
  29 +
  30 +using namespace Dali;
  31 +using namespace Dali::Toolkit;
  32 +
  33 +namespace
  34 +{
  35 +
  36 +const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
  37 +
  38 +const float BORDER_WIDTH = 4.0f;
  39 +
  40 +} // unnamed namespace
  41 +
  42 +/**
  43 + * @brief The main class of the demo.
  44 + */
  45 +class TextFieldExample : public ConnectionTracker
  46 +{
  47 +public:
  48 +
  49 + TextFieldExample( Application& application )
  50 + : mApplication( application )
  51 + {
  52 + // Connect to the Application's Init signal
  53 + mApplication.InitSignal().Connect( this, &TextFieldExample::Create );
  54 + }
  55 +
  56 + ~TextFieldExample()
  57 + {
  58 + // Nothing to do here.
  59 + }
  60 +
  61 + /**
  62 + * One-time setup in response to Application InitSignal.
  63 + */
  64 + void Create( Application& application )
  65 + {
  66 + DemoHelper::RequestThemeChange();
  67 +
  68 + Stage stage = Stage::GetCurrent();
  69 +
  70 + stage.KeyEventSignal().Connect(this, &TextFieldExample::OnKeyEvent);
  71 +
  72 + Vector2 stageSize = stage.GetSize();
  73 +
  74 + mContainer = Control::New();
  75 + mContainer.SetName( "Container" );
  76 + mContainer.SetParentOrigin( ParentOrigin::CENTER );
  77 + mContainer.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  78 + mContainer.SetSize( Vector2(stageSize.width*0.6f, stageSize.width*0.6f) );
  79 + mContainer.SetBackgroundImage( ResourceImage::New( BACKGROUND_IMAGE ) );
  80 + mContainer.GetChildAt(0).SetZ(-1.0f);
  81 + stage.Add( mContainer );
  82 +
  83 + TextField field = TextField::New();
  84 + field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  85 + field.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  86 + field.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
  87 +
  88 + mContainer.Add( field );
  89 +
  90 + field.SetProperty( TextField::Property::TEXT, "Hello" );
  91 +
  92 + Property::Value fieldText = field.GetProperty( TextField::Property::TEXT );
  93 + std::cout << "Displaying text: " << fieldText.Get< std::string >() << std::endl;
  94 + }
  95 +
  96 + /**
  97 + * Main key event handler
  98 + */
  99 + void OnKeyEvent(const KeyEvent& event)
  100 + {
  101 + if(event.state == KeyEvent::Down)
  102 + {
  103 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  104 + {
  105 + mApplication.Quit();
  106 + }
  107 + }
  108 + }
  109 +
  110 +private:
  111 +
  112 + Application& mApplication;
  113 +
  114 + Control mContainer;
  115 +};
  116 +
  117 +void RunTest( Application& application )
  118 +{
  119 + TextFieldExample test( application );
  120 +
  121 + application.MainLoop();
  122 +}
  123 +
  124 +/** Entry point for Linux & Tizen applications */
  125 +int main( int argc, char **argv )
  126 +{
  127 + Application application = Application::New( &argc, &argv );
  128 +
  129 + RunTest( application );
  130 +
  131 + return 0;
  132 +}
... ...
examples/text-label-emojis/emoji-strings.h 0 → 100644
  1 +#ifndef __DALI_DEMO_EMOJI_STRINGS_H__
  2 +#define __DALI_DEMO_EMOJI_STRINGS_H__
  3 +
  4 +/*
  5 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  6 + *
  7 + * Licensed under the Apache License, Version 2.0 (the "License");
  8 + * you may not use this file except in compliance with the License.
  9 + * You may obtain a copy of the License at
  10 + *
  11 + * http://www.apache.org/licenses/LICENSE-2.0
  12 + *
  13 + * Unless required by applicable law or agreed to in writing, software
  14 + * distributed under the License is distributed on an "AS IS" BASIS,
  15 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16 + * See the License for the specific language governing permissions and
  17 + * limitations under the License.
  18 + *
  19 + */
  20 +
  21 +// EXTERNAL INCLUDES
  22 +#include <string>
  23 +
  24 +namespace EmojiStrings
  25 +{
  26 + struct Emoji
  27 + {
  28 + uint32_t mUnicode;
  29 + std::string mUTF8;
  30 + std::string mDescription;
  31 + };
  32 +
  33 + const Emoji EMOJIS[] = {
  34 +
  35 + { 0x1F601,"\xF0\x9F\x98\x81","grinning face with smiling eyes" },
  36 + { 0x1F602,"\xF0\x9F\x98\x82","face with tears of joy" },
  37 + //{ 0x1F603,"\xF0\x9F\x98\x83","smiling face with open mouth" },
  38 + //{ 0x1F604,"\xF0\x9F\x98\x84","smiling face with open mouth and smiling eyes" },
  39 + { 0x1F605,"\xF0\x9F\x98\x85","smiling face with open mouth and cold sweat" },
  40 + //{ 0x1F606,"\xF0\x9F\x98\x86","smiling face with open mouth and tightly-closed eyes" },
  41 + { 0x1F609,"\xF0\x9F\x98\x89","winking face" },
  42 + { 0x1F60A,"\xF0\x9F\x98\x8A","smiling face with smiling eyes" },
  43 + { 0x1F60B,"\xF0\x9F\x98\x8B","face savouring delicious food" },
  44 + { 0x1F60C,"\xF0\x9F\x98\x8C","relieved face" },
  45 + { 0x1F60D,"\xF0\x9F\x98\x8D","smiling face with heart-shaped eyes" },
  46 + { 0x1F60F,"\xF0\x9F\x98\x8F","smirking face" },
  47 + //{ 0x1F612,"\xF0\x9F\x98\x92","unamused face" },
  48 + //{ 0x1F613,"\xF0\x9F\x98\x93","face with cold sweat" },
  49 + //{ 0x1F614,"\xF0\x9F\x98\x94","pensive face" },
  50 + //{ 0x1F616,"\xF0\x9F\x98\x96","confounded face" },
  51 + { 0x1F618,"\xF0\x9F\x98\x98","face throwing a kiss" },
  52 + { 0x1F61A,"\xF0\x9F\x98\x9A","kissing face with closed eyes" },
  53 + //{ 0x1F61C,"\xF0\x9F\x98\x9C","face with stuck-out tongue and winking eye" },
  54 + //{ 0x1F61D,"\xF0\x9F\x98\x9D","face with stuck-out tongue and tightly-closed eyes" },
  55 + //{ 0x1F61E,"\xF0\x9F\x98\x9E","disappointed face" },
  56 + { 0x1F620,"\xF0\x9F\x98\xA0","angry face" },
  57 +
  58 + /*
  59 + { "POUTING FACE",
  60 + { "CRYING FACE",
  61 + { "PERSEVERING FACE",
  62 + { "FACE WITH LOOK OF TRIUMPH",
  63 + { "DISAPPOINTED BUT RELIEVED FACE",
  64 + { "FEARFUL FACE",
  65 + { "WEARY FACE",
  66 + { "SLEEPY FACE",
  67 + { "TIRED FACE",
  68 + { "LOUDLY CRYING FACE",
  69 + { "FACE WITH OPEN MOUTH AND COLD SWEAT",
  70 + { "FACE SCREAMING IN FEAR",
  71 + { "ASTONISHED FACE",
  72 + { "FLUSHED FACE",
  73 + { "DIZZY FACE",
  74 + { "FACE WITH MEDICAL MASK",
  75 + { "GRINNING CAT FACE WITH SMILING EYES",
  76 + { "CAT FACE WITH TEARS OF JOY",
  77 + { "SMILING CAT FACE WITH OPEN MOUTH",
  78 + { "SMILING CAT FACE WITH HEART-SHAPED EYES",
  79 + { "CAT FACE WITH WRY SMILE",
  80 + { "KISSING CAT FACE WITH CLOSED EYES",
  81 + { "POUTING CAT FACE",
  82 + { "CRYING CAT FACE",
  83 + { "WEARY CAT FACE",
  84 + { "FACE WITH NO GOOD GESTURE",
  85 + { "FACE WITH OK GESTURE",
  86 + { "PERSON BOWING DEEPLY",
  87 + { "SEE-NO-EVIL MONKEY",
  88 + { "HEAR-NO-EVIL MONKEY",
  89 + { "SPEAK-NO-EVIL MONKEY",
  90 + { "HAPPY PERSON RAISING ONE HAND",
  91 + { "PERSON RAISING BOTH HANDS IN CELEBRATION",
  92 + { "PERSON FROWNING",
  93 + { "PERSON WITH POUTING FACE",
  94 + { "PERSON WITH FOLDED HANDS",
  95 + */
  96 +
  97 + };
  98 +
  99 + const unsigned int NUMBER_OF_EMOJIS = 12;
  100 +
  101 +} // EmojiStrings
  102 +
  103 +#endif // __DALI_DEMO_EMOJI_STRINGS_H__
... ...
examples/text-label-emojis/text-label-emojis.cpp 0 → 100644
  1 +/*
  2 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +// EXTERNAL INCLUDES
  19 +#include <dali-toolkit/dali-toolkit.h>
  20 +#include <dali/public-api/text-abstraction/text-abstraction.h>
  21 +#include <iostream>
  22 +
  23 +// INTERNAL INCLUDES
  24 +#include "emoji-strings.h"
  25 +
  26 +using namespace Dali;
  27 +using namespace Dali::Toolkit;
  28 +using namespace EmojiStrings;
  29 +
  30 + // TODO Need to expose Text::RENDER.....
  31 +const int ATLAS_RENDERER = 0;
  32 +
  33 +// This example shows how to create and display Hello World! using a simple TextActor
  34 +//
  35 +class EmojiExample : public ConnectionTracker
  36 +{
  37 +public:
  38 +
  39 + typedef uint32_t SizeType;
  40 +
  41 + EmojiExample( Application& application )
  42 + : mApplication( application )
  43 + {
  44 + std::cout << "EmoticonController::EmoticonController" << std::endl;
  45 +
  46 + // Connect to the Application's Init signal
  47 + mApplication.InitSignal().Connect( this, &EmojiExample::Create );
  48 + }
  49 +
  50 + ~EmojiExample()
  51 + {
  52 + // Nothing to do here;
  53 + }
  54 +
  55 + // The Init signal is received once (only) during the Application lifetime
  56 + void Create( Application& application )
  57 + {
  58 + Stage stage = Stage::GetCurrent();
  59 + stage.KeyEventSignal().Connect(this, &EmojiExample::OnKeyEvent);
  60 +
  61 + mTableView = Toolkit::TableView::New( NUMBER_OF_EMOJIS, 1 );
  62 + mTableView.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  63 + mTableView.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  64 + mTableView.SetParentOrigin( ParentOrigin::TOP_LEFT );
  65 + mTableView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  66 + mTableView.TouchedSignal().Connect( this, &EmojiExample::OnTouchEvent );
  67 + stage.Add( mTableView );
  68 +
  69 + for( unsigned int index = 0u; index < NUMBER_OF_EMOJIS; ++index )
  70 + {
  71 + const Emoji& emoji = EMOJIS[index];
  72 + const std::string text = emoji.mUTF8 + " " + emoji.mDescription;
  73 +
  74 + TextLabel label = TextLabel::New( text );
  75 + label.SetParentOrigin( ParentOrigin::TOP_CENTER );
  76 + label.SetAnchorPoint( AnchorPoint::TOP_CENTER );
  77 + label.SetProperty( TextLabel::Property::MULTI_LINE, true );
  78 +
  79 + mTableView.SetFitHeight( index );
  80 + mTableView.AddChild( label, Toolkit::TableView::CellPosition( index, 0 ) );
  81 + }
  82 + }
  83 +
  84 + bool OnTouchEvent( Actor actor, const TouchEvent& event )
  85 + {
  86 + if( 1u == event.GetPointCount() )
  87 + {
  88 + const TouchPoint::State state = event.GetPoint(0u).state;
  89 +
  90 + // Clamp to integer values; this is to reduce flicking due to pixel misalignment
  91 + const float localPoint = static_cast<float>( static_cast<int>( event.GetPoint( 0 ).local.y ) );
  92 +
  93 + if( TouchPoint::Down == state )
  94 + {
  95 + mLastPoint = localPoint;
  96 + mAnimation = Animation::New( 0.25f );
  97 + }
  98 + else if( TouchPoint::Motion == state )
  99 + {
  100 + if( mAnimation )
  101 + {
  102 + mAnimation.AnimateBy( Property(mTableView, Actor::Property::POSITION), Vector3( 0.f, localPoint - mLastPoint, 0.f ), AlphaFunctions::Linear );
  103 + mAnimation.Play();
  104 + mLastPoint = localPoint;
  105 + }
  106 + }
  107 + }
  108 +
  109 + return true;
  110 + }
  111 +
  112 + /**
  113 + * Main key event handler
  114 + */
  115 + void OnKeyEvent(const KeyEvent& event)
  116 + {
  117 + if(event.state == KeyEvent::Down)
  118 + {
  119 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  120 + {
  121 + mApplication.Quit();
  122 + }
  123 + }
  124 + }
  125 +
  126 +
  127 +private:
  128 + Application& mApplication;
  129 + TableView mTableView;
  130 + Animation mAnimation;
  131 + float mLastPoint;
  132 +};
  133 +
  134 +void RunTest( Application& application )
  135 +{
  136 + EmojiExample test( application );
  137 +
  138 + application.MainLoop();
  139 +}
  140 +
  141 +// Entry point for Linux & SLP applications
  142 +//
  143 +int main( int argc, char **argv )
  144 +{
  145 + Application application = Application::New( &argc, &argv );
  146 +
  147 + RunTest( application );
  148 +
  149 + return 0;
  150 +}
... ...
examples/text-label-multi-language/text-label-multi-language-example.cpp 0 → 100644
  1 +/*
  2 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +/**
  19 + * @file text-label-example.cpp
  20 + * @brief Basic usage of TextLabel control
  21 + */
  22 +
  23 +// EXTERNAL INCLUDES
  24 +#include <dali-toolkit/dali-toolkit.h>
  25 +#include <dali/public-api/text-abstraction/text-abstraction.h>
  26 +
  27 +// INTERNAL INCLUDES
  28 +#include "shared/multi-language-strings.h"
  29 +#include "shared/view.h"
  30 +
  31 +using namespace Dali;
  32 +using namespace Dali::Toolkit;
  33 +using namespace MultiLanguageStrings;
  34 +
  35 +/**
  36 + * @brief The main class of the demo.
  37 + */
  38 +class TextLabelMultiLanguageExample : public ConnectionTracker
  39 +{
  40 +public:
  41 +
  42 + TextLabelMultiLanguageExample( Application& application )
  43 + : mApplication( application ),
  44 + mLastPoint( 0.f )
  45 + {
  46 + // Connect to the Application's Init signal
  47 + mApplication.InitSignal().Connect( this, &TextLabelMultiLanguageExample::Create );
  48 + }
  49 +
  50 + ~TextLabelMultiLanguageExample()
  51 + {
  52 + // Nothing to do here.
  53 + }
  54 +
  55 + /**
  56 + * One-time setup in response to Application InitSignal.
  57 + */
  58 + void Create( Application& application )
  59 + {
  60 + DemoHelper::RequestThemeChange();
  61 +
  62 + Stage stage = Stage::GetCurrent();
  63 +
  64 + stage.KeyEventSignal().Connect(this, &TextLabelMultiLanguageExample::OnKeyEvent);
  65 +
  66 + mTableView = Toolkit::TableView::New( NUMBER_OF_LANGUAGES, 1 );
  67 + mTableView.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  68 + mTableView.SetResizePolicy( USE_NATURAL_SIZE, HEIGHT );
  69 + mTableView.SetParentOrigin( ParentOrigin::TOP_LEFT );
  70 + mTableView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  71 + mTableView.TouchedSignal().Connect( this, &TextLabelMultiLanguageExample::OnTouchEvent );
  72 + stage.Add( mTableView );
  73 +
  74 + for( unsigned int index = 0u; index < NUMBER_OF_LANGUAGES; ++index )
  75 + {
  76 + const Language& language = LANGUAGES[index];
  77 +
  78 + TextLabel label = TextLabel::New();
  79 + label.SetProperty( TextLabel::Property::MULTI_LINE, true );
  80 +
  81 + const std::string text = language.languageName + " " + language.languageRomanName + " " + language.text;
  82 + label.SetProperty( TextLabel::Property::TEXT, text );
  83 +
  84 + mTableView.SetFitHeight( index );
  85 + mTableView.AddChild( label, Toolkit::TableView::CellPosition( index, 0 ) );
  86 + }
  87 + }
  88 +
  89 + bool OnTouchEvent( Actor actor, const TouchEvent& event )
  90 + {
  91 + if( 1u == event.GetPointCount() )
  92 + {
  93 + const TouchPoint::State state = event.GetPoint(0u).state;
  94 +
  95 + // Clamp to integer values; this is to reduce flicking due to pixel misalignment
  96 + const float localPoint = static_cast<float>( static_cast<int>( event.GetPoint( 0 ).local.y ) );
  97 +
  98 + if( TouchPoint::Down == state )
  99 + {
  100 + mLastPoint = localPoint;
  101 + mAnimation = Animation::New( 0.25f );
  102 + }
  103 + else if( TouchPoint::Motion == state )
  104 + {
  105 + if( mAnimation )
  106 + {
  107 + mAnimation.AnimateBy( Property(mTableView, Actor::Property::POSITION), Vector3( 0.f, localPoint - mLastPoint, 0.f ), AlphaFunctions::Linear );
  108 + mAnimation.Play();
  109 + mLastPoint = localPoint;
  110 + }
  111 + }
  112 + }
  113 +
  114 + return true;
  115 + }
  116 +
  117 + /**
  118 + * Main key event handler
  119 + */
  120 + void OnKeyEvent(const KeyEvent& event)
  121 + {
  122 + if(event.state == KeyEvent::Down)
  123 + {
  124 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  125 + {
  126 + mApplication.Quit();
  127 + }
  128 + }
  129 + }
  130 +
  131 +private:
  132 +
  133 + Application& mApplication;
  134 + TableView mTableView;
  135 + Animation mAnimation;
  136 + float mLastPoint;
  137 +};
  138 +
  139 +void RunTest( Application& application )
  140 +{
  141 + TextLabelMultiLanguageExample test( application );
  142 +
  143 + application.MainLoop();
  144 +}
  145 +
  146 +/** Entry point for Linux & Tizen applications */
  147 +int main( int argc, char **argv )
  148 +{
  149 + Application application = Application::New( &argc, &argv );
  150 +
  151 + RunTest( application );
  152 +
  153 + return 0;
  154 +}
... ...
examples/text-label/text-label-example.cpp 0 → 100644
  1 +/*
  2 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +/**
  19 + * @file text-label-example.cpp
  20 + * @brief Basic usage of TextLabel control
  21 + */
  22 +
  23 +// EXTERNAL INCLUDES
  24 +#include <dali-toolkit/dali-toolkit.h>
  25 +#include <dali/public-api/text-abstraction/text-abstraction.h>
  26 +
  27 +// INTERNAL INCLUDES
  28 +#include "shared/multi-language-strings.h"
  29 +#include "shared/view.h"
  30 +
  31 +using namespace Dali;
  32 +using namespace Dali::Toolkit;
  33 +using namespace MultiLanguageStrings;
  34 +
  35 +namespace
  36 +{
  37 + const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
  38 +
  39 + const unsigned int KEY_ZERO = 10;
  40 + const unsigned int KEY_ONE = 11;
  41 + const unsigned int KEY_H = 43;
  42 + const unsigned int KEY_V = 55;
  43 + const unsigned int KEY_M = 58;
  44 + const unsigned int KEY_L = 46;
  45 + const unsigned int KEY_S = 39;
  46 + const unsigned int KEY_PLUS = 21;
  47 + const unsigned int KEY_MINUS = 20;
  48 +
  49 + const char* H_ALIGNMENT_STRING_TABLE[] =
  50 + {
  51 + "BEGIN",
  52 + "CENTER",
  53 + "END"
  54 + };
  55 +
  56 + const unsigned int H_ALIGNMENT_STRING_COUNT = sizeof( H_ALIGNMENT_STRING_TABLE ) / sizeof( H_ALIGNMENT_STRING_TABLE[0u] );
  57 +
  58 + const char* V_ALIGNMENT_STRING_TABLE[] =
  59 + {
  60 + "TOP",
  61 + "CENTER",
  62 + "BOTTOM"
  63 + };
  64 +
  65 + const unsigned int V_ALIGNMENT_STRING_COUNT = sizeof( V_ALIGNMENT_STRING_TABLE ) / sizeof( V_ALIGNMENT_STRING_TABLE[0u] );
  66 +
  67 + int ConvertToEven(int value)
  68 + {
  69 + return (value % 2 == 0) ? value : (value + 1);
  70 + }
  71 +}
  72 +
  73 +/**
  74 + * @brief The main class of the demo.
  75 + */
  76 +class TextLabelExample : public ConnectionTracker
  77 +{
  78 +public:
  79 +
  80 + TextLabelExample( Application& application )
  81 + : mApplication( application ),
  82 + mLanguageId( 0u ),
  83 + mAlignment( 0u )
  84 + {
  85 + // Connect to the Application's Init signal
  86 + mApplication.InitSignal().Connect( this, &TextLabelExample::Create );
  87 + }
  88 +
  89 + ~TextLabelExample()
  90 + {
  91 + // Nothing to do here.
  92 + }
  93 +
  94 + /**
  95 + * One-time setup in response to Application InitSignal.
  96 + */
  97 + void Create( Application& application )
  98 + {
  99 + DemoHelper::RequestThemeChange();
  100 +
  101 + Stage stage = Stage::GetCurrent();
  102 +
  103 + stage.KeyEventSignal().Connect(this, &TextLabelExample::OnKeyEvent);
  104 + Vector2 stageSize = stage.GetSize();
  105 +
  106 + mContainer = Control::New();
  107 + mContainer.SetName( "Container" );
  108 + mContainer.SetParentOrigin( ParentOrigin::CENTER );
  109 + mContainer.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  110 + mLayoutSize = Vector2(stageSize.width*0.6f, stageSize.width*0.6f);
  111 + mContainer.SetSize( mLayoutSize );
  112 + mContainer.SetBackgroundImage( ResourceImage::New( BACKGROUND_IMAGE ) );
  113 + mContainer.GetChildAt(0).SetZ(-1.0f);
  114 + stage.Add( mContainer );
  115 +
  116 + // Resize the center layout when the corner is grabbed
  117 + mGrabCorner = Control::New();
  118 + mGrabCorner.SetName( "GrabCorner" );
  119 + mGrabCorner.SetAnchorPoint( AnchorPoint::BOTTOM_RIGHT );
  120 + mGrabCorner.SetParentOrigin( ParentOrigin::BOTTOM_RIGHT );
  121 + mGrabCorner.SetResizePolicy( FIXED, ALL_DIMENSIONS );
  122 + mGrabCorner.SetSize( Vector2(stageSize.width*0.1f, stageSize.width*0.1f) );
  123 + mGrabCorner.SetZ(1.0f);
  124 + mContainer.Add( mGrabCorner );
  125 +
  126 + mPanGestureDetector = PanGestureDetector::New();
  127 + mPanGestureDetector.Attach( mGrabCorner );
  128 + mPanGestureDetector.DetectedSignal().Connect( this, &TextLabelExample::OnPan );
  129 +
  130 + mLabel = TextLabel::New( "A Quick Brown Fox Jumps Over The Lazy Dog" );
  131 + mLabel.SetName( "TextLabel" );
  132 + mLabel.SetAnchorPoint( AnchorPoint::TOP_LEFT );
  133 + mLabel.SetResizePolicy( FILL_TO_PARENT, WIDTH );
  134 + mLabel.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT );
  135 + mLabel.SetProperty( TextLabel::Property::MULTI_LINE, true );
  136 + mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 1.0f, 1.0f ) );
  137 + mLabel.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::BLACK );
  138 + mContainer.Add( mLabel );
  139 +
  140 + Property::Value labelText = mLabel.GetProperty( TextLabel::Property::TEXT );
  141 + std::cout << "Displaying text: \"" << labelText.Get< std::string >() << "\"" << std::endl;
  142 + }
  143 +
  144 + // Resize the text-label with pan gesture
  145 + void OnPan( Actor actor, const PanGesture& gesture )
  146 + {
  147 + mLayoutSize.x += gesture.displacement.x * 2.0f;
  148 + mLayoutSize.y += gesture.displacement.y * 2.0f;
  149 +
  150 + if( mLayoutSize.x >= 2.0f &&
  151 + mLayoutSize.y >= 2.0f )
  152 + {
  153 + // Avoid pixel mis-alignment issue
  154 + Vector2 clampedSize = Vector2( ConvertToEven(static_cast<int>(mLayoutSize.x)),
  155 + ConvertToEven(static_cast<int>(mLayoutSize.y)) );
  156 +
  157 + mContainer.SetSize( clampedSize );
  158 + }
  159 + }
  160 +
  161 + /**
  162 + * Main key event handler
  163 + */
  164 + void OnKeyEvent(const KeyEvent& event)
  165 + {
  166 + if(event.state == KeyEvent::Down)
  167 + {
  168 + if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
  169 + {
  170 + mApplication.Quit();
  171 + }
  172 + else if( event.IsCtrlModifier() )
  173 + {
  174 + switch( event.keyCode )
  175 + {
  176 + case KEY_ZERO: // fall through
  177 + case KEY_ONE:
  178 + {
  179 + mLabel.SetProperty( TextLabel::Property::RENDERING_BACKEND, event.keyCode - 10 );
  180 + break;
  181 + }
  182 + case KEY_H:
  183 + {
  184 + if( ++mAlignment >= H_ALIGNMENT_STRING_COUNT )
  185 + {
  186 + mAlignment = 0u;
  187 + }
  188 +
  189 + mLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, H_ALIGNMENT_STRING_TABLE[ mAlignment ] );
  190 + break;
  191 + }
  192 + case KEY_V:
  193 + {
  194 + if( ++mAlignment >= V_ALIGNMENT_STRING_COUNT )
  195 + {
  196 + mAlignment = 0u;
  197 + }
  198 +
  199 + mLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, V_ALIGNMENT_STRING_TABLE[ mAlignment ] );
  200 + break;
  201 + }
  202 + case KEY_M:
  203 + {
  204 + bool multiLine = mLabel.GetProperty<bool>( TextLabel::Property::MULTI_LINE );
  205 + mLabel.SetProperty( TextLabel::Property::MULTI_LINE, !multiLine );
  206 + break;
  207 + }
  208 + case KEY_L:
  209 + {
  210 + const Language& language = LANGUAGES[ mLanguageId ];
  211 +
  212 + mLabel.SetProperty( TextLabel::Property::TEXT, language.text );
  213 +
  214 + if( ++mLanguageId >= NUMBER_OF_LANGUAGES )
  215 + {
  216 + mLanguageId = 0u;
  217 + }
  218 + break;
  219 + }
  220 + case KEY_S:
  221 + {
  222 + if( Color::BLACK == mLabel.GetProperty<Vector4>( TextLabel::Property::SHADOW_COLOR ) )
  223 + {
  224 + mLabel.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::RED );
  225 + }
  226 + else
  227 + {
  228 + mLabel.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::BLACK );
  229 + }
  230 + break;
  231 + }
  232 + case KEY_PLUS:
  233 + {
  234 + mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, mLabel.GetProperty<Vector2>( TextLabel::Property::SHADOW_OFFSET ) + Vector2( 1.0f, 1.0f ) );
  235 + break;
  236 + }
  237 + case KEY_MINUS:
  238 + {
  239 + mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, mLabel.GetProperty<Vector2>( TextLabel::Property::SHADOW_OFFSET ) - Vector2( 1.0f, 1.0f ) );
  240 + break;
  241 + }
  242 +
  243 + }
  244 + }
  245 + }
  246 + }
  247 +
  248 +private:
  249 +
  250 + Application& mApplication;
  251 +
  252 + TextLabel mLabel;
  253 +
  254 + Control mContainer;
  255 + Actor mGrabCorner;
  256 +
  257 + PanGestureDetector mPanGestureDetector;
  258 +
  259 + Vector2 mLayoutSize;
  260 +
  261 + unsigned int mLanguageId;
  262 + unsigned int mAlignment;
  263 +};
  264 +
  265 +void RunTest( Application& application )
  266 +{
  267 + TextLabelExample test( application );
  268 +
  269 + application.MainLoop();
  270 +}
  271 +
  272 +/** Entry point for Linux & Tizen applications */
  273 +int main( int argc, char **argv )
  274 +{
  275 + Application application = Application::New( &argc, &argv );
  276 +
  277 + RunTest( application );
  278 +
  279 + return 0;
  280 +}
... ...
examples/text-view/text-view-example.cpp deleted
1   -/*
2   - * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3   - *
4   - * Licensed under the Apache License, Version 2.0 (the "License");
5   - * you may not use this file except in compliance with the License.
6   - * You may obtain a copy of the License at
7   - *
8   - * http://www.apache.org/licenses/LICENSE-2.0
9   - *
10   - * Unless required by applicable law or agreed to in writing, software
11   - * distributed under the License is distributed on an "AS IS" BASIS,
12   - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   - * See the License for the specific language governing permissions and
14   - * limitations under the License.
15   - *
16   - */
17   -
18   -#include "shared/view.h"
19   -#include <dali/dali.h>
20   -#include <dali-toolkit/dali-toolkit.h>
21   -
22   -using namespace Dali;
23   -
24   -namespace
25   -{
26   -
27   -const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg";
28   -const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png";
29   -
30   -const char* const TOOLBAR_TITLE = "Text View";
31   -const int TOOLBAR_HEIGHT = 80;
32   -
33   -const int NUM_TABLE_ROWS = 12;
34   -const int NUM_TABLE_COLUMNS = 12;
35   -
36   -} // namespace
37   -
38   -/**
39   - * Helper structs
40   - */
41   -struct TableCell
42   -{
43   - unsigned int row;
44   - unsigned int column;
45   - unsigned int rowSpan;
46   - unsigned int columnSpan;
47   -};
48   -
49   -struct TableString
50   -{
51   - std::string fontName;
52   - std::string fontStyle;
53   - float fontSize;
54   - Dali::TextStyle::Weight fontWeight;
55   - Vector4 fontColour;
56   -
57   - std::string text;
58   -
59   - Toolkit::Alignment::Type horizontalAlignment;
60   - Toolkit::Alignment::Type verticalAlignment;
61   - float padding;
62   -
63   - float orientation;
64   -
65   - TableCell cellPosition;
66   -};
67   -
68   -namespace
69   -{
70   -// Font Font style Font point size Font weight Text colour Text Horizontal alignment Vertical alignment Padding Orientation Table cell position and span
71   -const TableString TABLE_STRINGS[] = { { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::REGULAR, Vector4( 0.5f, 1.0f, 0.0f, 1.0f ), "Howdy", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 0, 0, 2, 4 } },
72   - { "HelveticaNue", "Regular", 13.0f, Dali::TextStyle::EXTRABOLD, Vector4( 1.0f, 0.5f, 0.0f, 1.0f ), "Hello!", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 0, 4, 1, 4 } },
73   - { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::REGULAR, Vector4( 1.0f, 0.75f, 0.25f, 1.0f ), "שלום!", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 1, 4, 1, 4 } },
74   - { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::REGULAR, Vector4( 0.5f, 0.0f, 1.0f, 1.0f ), "Hi there", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalBottom, 10.0f, 0.0f, { 0, 8, 2, 4 } },
75   - { "HelveticaNue", "Regular", 12.0f, Dali::TextStyle::REGULAR, Vector4( 0.5f, 1.0f, 1.0f, 1.0f ), "Hola", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 90.0f, { 2, 0, 4, 2 } },
76   - { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::BOLD, Vector4( 0.5f, 1.0f, 0.5f, 1.0f ), "Bonjour", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 2, 2, 2, 4 } },
77   - { "HelveticaNue", "Regular", 12.0f, Dali::TextStyle::REGULAR, Vector4( 1.0f, 1.0f, 0.5f, 1.0f ), "Ciao", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 2, 7, 2, 3 } },
78   - { "HelveticaNue", "Regular", 23.0f, Dali::TextStyle::EXTRABLACK, Vector4( 0.5f, 0.0f, 0.0f, 1.0f ), "안녕하세요", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 20.0f, 0.0f, { 4, 3, 1, 6 } },
79   - { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::DEMIBOLD, Vector4( 0.0f, 0.5f, 0.0f, 1.0f ), "Top of the morning to you", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 90.0f, { 4, 10, 8, 2 } },
80   - { "HelveticaNue", "Regular", 13.0f, Dali::TextStyle::DEMIBOLD, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ), "हैलो", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 6, 1, 1, 3 } },
81   - { "HelveticaNue", "Regular", 8.0f, Dali::TextStyle::DEMIBOLD, Vector4( 1.0f, 1.0f, 0.0f, 1.0f ), "สวัสดี", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 90.0f, { 6, 5, 2, 1 } },
82   - { "HelveticaNue", "Regular", 18.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 1.0f, 1.0f, 1.0f ), "你好", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalBottom, 10.0f, 0.0f, { 6, 6, 1, 3 } },
83   - { "HelveticaNue", "Regular", 34.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 0.0f, 1.0f, 1.0f ), "G'day", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 7, 0, 2, 10 } },
84   - { "HelveticaNue", "Regular", 16.0f, Dali::TextStyle::EXTRABLACK, Vector4( 0.0f, 0.5f, 1.0f, 1.0f ), "مرحبا", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 9, 1, 2, 4 } },
85   - { "HelveticaNue", "Regular", 10.0f, Dali::TextStyle::EXTRABLACK, Vector4( 1.0f, 0.0f, 0.0f, 1.0f ), "こんにちは", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f, 0.0f, { 10, 0, 2, 6 } },
86   - { "HelveticaNue", "Regular", 14.0f, Dali::TextStyle::REGULAR, Vector4( 0.0f, 1.0f, 0.0f, 1.0f ), "aloha", Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop, 10.0f, 0.0f, { 10, 6, 2, 4 } }
87   - };
88   -
89   -const int NUM_TABLE_STRINGS = sizeof( TABLE_STRINGS ) / sizeof( TABLE_STRINGS[0] );
90   -
91   -} // namespace
92   -
93   -/**
94   - * This example shows the usage of TextView.
95   - */
96   -class TextViewController: public ConnectionTracker
97   -{
98   -public:
99   -
100   - TextViewController( Application& application )
101   - : mApplication( application )
102   - {
103   - // Connect to the Application's Init signal
104   - mApplication.InitSignal().Connect( this, &TextViewController::Create );
105   - }
106   -
107   - ~TextViewController()
108   - {
109   - // Nothing to do here
110   - }
111   -
112   - void Create( Application& application )
113   - {
114   - // The Init signal is received once (only) during the Application lifetime
115   -
116   - Stage stage = Stage::GetCurrent();
117   -
118   - // Respond to key events
119   - stage.KeyEventSignal().Connect(this, &TextViewController::OnKeyEvent);
120   -
121   - // Creates a default view with a default tool bar.
122   - // The view is added to the stage.
123   - mContentLayer = DemoHelper::CreateView( application,
124   - mView,
125   - mToolBar,
126   - BACKGROUND_IMAGE,
127   - TOOLBAR_IMAGE,
128   - TOOLBAR_TITLE );
129   -
130   - // Create a table view the height of the stage
131   - Toolkit::TableView textContainer = Toolkit::TableView::New( NUM_TABLE_ROWS, NUM_TABLE_COLUMNS );
132   - textContainer.SetParentOrigin( ParentOrigin::TOP_LEFT );
133   - textContainer.SetAnchorPoint( AnchorPoint::TOP_LEFT );
134   - textContainer.SetPosition( 0, TOOLBAR_HEIGHT );
135   - textContainer.SetSize( stage.GetSize().width, stage.GetSize().height - TOOLBAR_HEIGHT );
136   -
137   - mContentLayer.Add( textContainer );
138   -
139   - // Add data
140   - for( int i = 0; i < NUM_TABLE_STRINGS; ++i )
141   - {
142   - const TableString& tableString = TABLE_STRINGS[ i ];
143   -
144   - Dali::TextStyle textStyle;
145   - textStyle.SetFontName( tableString.fontName );
146   - textStyle.SetFontStyle( tableString.fontStyle );
147   - textStyle.SetFontPointSize( Dali::PointSize( DemoHelper::ScalePointSize( tableString.fontSize ) ) );
148   - textStyle.SetWeight( tableString.fontWeight );
149   - textStyle.SetTextColor( tableString.fontColour );
150   -
151   - Toolkit::TextView textView = Toolkit::TextView::New( tableString.text );
152   - textView.SetStyleToCurrentText( textStyle );
153   - textView.SetOrientation( Dali::Degree( tableString.orientation ), Vector3( 0.0f, 0.0f, 1.0f ) );
154   - textView.SetResizePolicy( USE_NATURAL_SIZE, ALL_DIMENSIONS );
155   -
156   - Toolkit::Alignment alignmentContainer = Toolkit::Alignment::New( tableString.horizontalAlignment, tableString.verticalAlignment );
157   - Actor alignmentContainerActor = alignmentContainer;
158   - alignmentContainerActor.SetPadding( Padding( tableString.padding, tableString.padding, tableString.padding, tableString.padding ) );
159   - alignmentContainer.SetResizePolicy( FILL_TO_PARENT, ALL_DIMENSIONS );
160   - alignmentContainer.Add( textView );
161   -
162   - textContainer.AddChild( alignmentContainer, Toolkit::TableView::CellPosition( tableString.cellPosition.row, tableString.cellPosition.column, tableString.cellPosition.rowSpan, tableString.cellPosition.columnSpan ) );
163   - }
164   - }
165   -
166   - void OnKeyEvent( const KeyEvent& event )
167   - {
168   - if( event.state == KeyEvent::Down )
169   - {
170   - if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
171   - {
172   - // Exit application when click back or escape.
173   - mApplication.Quit();
174   - }
175   - }
176   - }
177   -
178   -private:
179   -
180   - Application& mApplication;
181   - Toolkit::View mView; ///< The View instance.
182   - Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
183   - Layer mContentLayer; ///< Content layer
184   -
185   -};
186   -
187   -void RunTest( Application& application )
188   -{
189   - TextViewController test( application );
190   -
191   - application.MainLoop();
192   -}
193   -
194   -// Entry point for Linux & Tizen applications
195   -//
196   -int main( int argc, char **argv )
197   -{
198   - Application application = Application::New( &argc, &argv );
199   -
200   - RunTest( application );
201   -
202   - return 0;
203   -}
packaging/com.samsung.dali-demo.spec
... ... @@ -2,7 +2,7 @@
2 2  
3 3 Name: com.samsung.dali-demo
4 4 Summary: The OpenGLES Canvas Core Demo
5   -Version: 1.0.36
  5 +Version: 1.0.37
6 6 Release: 1
7 7 Group: System/Libraries
8 8 License: Apache-2.0
... ... @@ -22,6 +22,7 @@ BuildRequires: dali-toolkit-devel
22 22 BuildRequires: dali-adaptor-devel
23 23 BuildRequires: pkgconfig(dlog)
24 24 BuildRequires: pkgconfig(egl)
  25 +BuildRequires: gettext-tools
25 26  
26 27 %description
27 28 The OpenGLES Canvas Core Demo is a collection of examples and demonstrations
... ... @@ -37,6 +38,8 @@ of the capability of the toolkit.
37 38 %define dali_xml_file_dir /usr/share/packages/
38 39 %define dali_icon_dir /usr/share/icons/
39 40 %define smack_rule_dir /etc/smack/accesses2.d/
  41 +%define locale_dir %{dali_app_ro_dir}/res/locale
  42 +%define local_style_dir ../../resources/style/mobile
40 43  
41 44 ##############################
42 45 # Build
... ... @@ -50,7 +53,7 @@ LDFLAGS+=&quot; -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -fPIC&quot;
50 53 CXXFLAGS+=" -D_ARCH_ARM_"
51 54 %endif
52 55  
53   -cd %{_builddir}/%{name}-%{version}/build/tizen && cmake -DDALI_APP_DIR=%{dali_app_ro_dir} .
  56 +cd %{_builddir}/%{name}-%{version}/build/tizen && cmake -DDALI_APP_DIR=%{dali_app_ro_dir} -DLOCALE_DIR=%{locale_dir} -DLOCAL_STYLE_DIR=%{local_style_dir} .
54 57  
55 58 make %{?jobs:-j%jobs}
56 59  
... ... @@ -108,8 +111,10 @@ exit 0
108 111 %{dali_app_ro_dir}/images/*
109 112 %{dali_app_ro_dir}/models/*
110 113 %{dali_app_ro_dir}/scripts/*
  114 +%{dali_app_ro_dir}/style/*
111 115 %{dali_xml_file_dir}/%{name}.xml
112 116 %{dali_icon_dir}/*
  117 +%{locale_dir}/*
113 118 %if 0%{?enable_dali_smack_rules} && !%{with wayland}
114 119 %config %{smack_rule_dir}/%{name}.rule
115 120 %endif
... ...
resources/scripts/animated-colors.json
... ... @@ -988,12 +988,12 @@
988 988 ]
989 989 },
990 990 {
991   - "type": "TextView",
  991 + "type": "TextLabel",
992 992 "name": "text",
993 993 "parent-origin": "CENTER",
994 994 "anchor-point": "CENTER",
995   - "text": "<font size='20'><b>START</b></font>",
996   - "markup-enabled": true,
  995 + "text": "START",
  996 + "point-size": 20,
997 997 "signals": [
998 998 {
999 999 "name": "tapped",
... ...
resources/scripts/animation.json
... ... @@ -85,7 +85,7 @@
85 85 // a tree of actors
86 86 "stage": [{
87 87 "name": "greeting",
88   - "type": "TextView",
  88 + "type": "TextLabel",
89 89 "text": "Touch me",
90 90 "styles": ["basic-text"],
91 91 "position": [0, -120, 0],
... ... @@ -98,7 +98,7 @@
98 98 }]
99 99 }, {
100 100 "name":"greeting2",
101   - "type": "TextView",
  101 + "type": "TextLabel",
102 102 "parent-origin": "CENTER",
103 103 "anchor-point": "CENTER",
104 104 "size": [200, 200, 1],
... ... @@ -111,7 +111,7 @@
111 111 "animation": "path-animation"
112 112 }]
113 113 }, {
114   - "type": "TextView", // styles can be additive
  114 + "type": "TextLabel", // styles can be additive
115 115 "parent-origin": "CENTER",
116 116 "anchor-point": "CENTER",
117 117 "size": [200, 200, 1],
... ...
resources/scripts/background-color.json
... ... @@ -16,9 +16,9 @@
16 16 */
17 17 {
18 18 "stage": [
19   - // A TextView with a red background
  19 + // A TextLabel with a red background
20 20 {
21   - "type": "TextView",
  21 + "type": "TextLabel",
22 22 "text": "Hello World",
23 23 "parent-origin": "TOP_CENTER",
24 24 "anchor-point": "TOP_CENTER",
... ...
resources/scripts/button.json
... ... @@ -25,7 +25,7 @@
25 25 "parent-origin": "TOP_CENTER",
26 26 "anchor-point": "TOP_CENTER",
27 27 "position": [0, 0, 0],
28   - "size": [0, 200, 0],
  28 + "size": [400, 200, 0],
29 29 "normal-state-actor": {
30 30 "type": "ImageActor",
31 31 "image": {
... ... @@ -39,7 +39,7 @@
39 39 }
40 40 },
41 41 "label-actor": {
42   - "type": "TextView",
  42 + "type": "TextLabel",
43 43 "text": "Normal"
44 44 }
45 45 },
... ... @@ -50,9 +50,9 @@
50 50 "parent-origin": "CENTER",
51 51 "anchor-point": "CENTER",
52 52 "position": [0, 0, 0],
53   - "size": [0, 200, 0],
  53 + "size": [400, 200, 0],
54 54 "label-actor": {
55   - "type": "TextView",
  55 + "type": "TextLabel",
56 56 "text": "Disabled"
57 57 },
58 58 "disabled": true,
... ... @@ -83,9 +83,9 @@
83 83 "parent-origin": "BOTTOM_CENTER",
84 84 "anchor-point": "BOTTOM_CENTER",
85 85 "position": [0, 0, 0],
86   - "size": [0, 200, 0],
  86 + "size": [400, 200, 0],
87 87 "label-actor": {
88   - "type": "TextView",
  88 + "type": "TextLabel",
89 89 "text": "Toggle"
90 90 },
91 91 "togglable": true,
... ... @@ -111,7 +111,7 @@
111 111 "actor": "toggle-button",
112 112 "property": "label-actor",
113 113 "value": {
114   - "type": "TextView",
  114 + "type": "TextLabel",
115 115 "text": "Using a 9-patch image"
116 116 }
117 117 }]
... ...
resources/scripts/formatted-text.json deleted
1   -/*
2   - * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3   - *
4   - * Licensed under the Apache License, Version 2.0 (the "License");
5   - * you may not use this file except in compliance with the License.
6   - * You may obtain a copy of the License at
7   - *
8   - * http://www.apache.org/licenses/LICENSE-2.0
9   - *
10   - * Unless required by applicable law or agreed to in writing, software
11   - * distributed under the License is distributed on an "AS IS" BASIS,
12   - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   - * See the License for the specific language governing permissions and
14   - * limitations under the License.
15   - *
16   - */
17   -{
18   - // a tree of actors
19   - "stage": [{
20   - "type": "Actor",
21   - "size": [400, 400, 1],
22   - "parent-origin": "CENTER",
23   - "actors": [{
24   - "type": "TextView",
25   - "size": [400, 400, 1],
26   - "text": "<font size='8>Text with<br>\n<b>'markup-enabled':true</b></font>",
27   - "markup-enabled": true,
28   - "multiline-policy": "SplitByNewLineChar",
29   - "horizontal-alignment": "HorizontalCenter",
30   - "vertical-alignment": "VerticalBottom",
31   - "width-exceed-policy": "Fade",
32   - "line-justification": "Center",
33   - "fade-boundary": [50, 50, 0, 0],
34   - "line-height-offset": 25.0,
35   - "parent-origin": "TOP_CENTER"
36   - }, {
37   - "type": "TextView",
38   - "size": [400, 400, 1],
39   - "text": "<font size='16'>Text with\n<b>'markup-enabled':false</b></font>",
40   - "markup-enabled": false,
41   - "multiline-policy": "SplitByWord",
42   - "horizontal-alignment": "HorizontalLeft",
43   - "vertical-alignment": "VerticalTop",
44   - "width-exceed-policy": "ShrinkToFit",
45   - "height-exceed-policy": "Original",
46   - "line-justification": "Right",
47   - "line-height-offset": 5.0,
48   - "parent-origin": "BOTTOM_CENTER"
49   - }]
50   - }]
51   -}
resources/scripts/hello-world.json
... ... @@ -17,7 +17,7 @@
17 17 {
18 18 // a tree of actors
19 19 "stage": [{
20   - "type": "TextView",
  20 + "type": "TextLabel",
21 21 "text": "Hello World",
22 22 "parent-origin": "CENTER"
23 23 }]
... ...
resources/scripts/music-library.json
... ... @@ -132,7 +132,7 @@
132 132 "type": "Control",
133 133 "actors": [
134 134 {
135   - "type": "TextView",
  135 + "type": "TextLabel",
136 136 "actors": [],
137 137 "name": "Time",
138 138 "position": [
... ... @@ -147,8 +147,8 @@
147 147 1
148 148 ],
149 149 "sizeAspectRatio": false,
150   - "markup-enabled": true,
151   - "text": "<font size=10px color=#ffffff><b>12:30</b></font>"
  150 + "text": "12:30",
  151 + "point-size": 10
152 152 }
153 153 ],
154 154 "name": "Indicators",
... ...
resources/scripts/navigation.json
... ... @@ -31,7 +31,7 @@
31 31 "title": "title",
32 32 "sub-title": "sub title",
33 33 "actors": [{
34   - "type": "TextView", // styles can be additive
  34 + "type": "TextLabel", // styles can be additive
35 35 "parent-origin": [0.5, 0.5, 0],
36 36 "anchor-point": [0.5, 0.5, 0],
37 37 "size": [200, 200, 1],
... ... @@ -47,13 +47,13 @@
47 47 "type": "Page",
48 48 "name": "page2",
49 49 "actors": [{
50   - "type": "TextView", // styles can be additive
  50 + "type": "TextLabel", // styles can be additive
51 51 "parent-origin": [0.5, 0.5, 0.5],
52 52 "anchor-point": [0.5, 0.5, 0.5],
53 53 "size": [200, 200, 1],
54 54 "text": "Hello World!"
55 55 }, {
56   - "type": "TextView", // styles can be additive
  56 + "type": "TextLabel", // styles can be additive
57 57 "parent-origin": [0.0, 0.0, 0.5],
58 58 "anchor-point": [0.0, 0.0, 0.5],
59 59 "size": [200, 200, 1],
... ... @@ -64,7 +64,7 @@
64 64 "action": "pop"
65 65 }]
66 66 }, {
67   - "type": "TextView", // styles can be additive
  67 + "type": "TextLabel", // styles can be additive
68 68 "parent-origin": [1.0, 1.0, 0.5],
69 69 "anchor-point": [1.0, 1.0, 0.5],
70 70 "size": [200, 200, 1],
... ...
resources/scripts/super-blur-view.json
... ... @@ -65,9 +65,9 @@
65 65 "parent-origin": "BOTTOM_CENTER",
66 66 "anchor-point": "BOTTOM_CENTER",
67 67 "position": [0, 0, 0],
68   - "size": [0, 100, 0],
  68 + "size": [200, 100, 0],
69 69 "label-actor": {
70   - "type": "TextView",
  70 + "type": "TextLabel",
71 71 "text": "Blur"
72 72 },
73 73 "normal-state-actor": {
... ...
resources/scripts/table-view.json
... ... @@ -22,8 +22,6 @@
22 22 "background-color": [0.5,0.5,0,1],
23 23 "parent-origin": "CENTER",
24 24 "size":[400,500,1],
25   - "rows": 4,
26   - "columns":4,
27 25 "cell-padding": [10, 5],
28 26 "layout-rows": { // set the height of the rows
29 27 "0": { "policy": "fixed", "value": 40 },
... ... @@ -38,17 +36,21 @@
38 36 "actors": [{
39 37 "name":"gallery-1",
40 38 "type":"ImageActor",
  39 + "width-resize-policy":"FILL_TO_PARENT",
  40 + "height-resize-policy":"FILL_TO_PARENT",
41 41 "image": {
42 42 "filename": "{DALI_IMAGE_DIR}gallery-large-1.jpg"
43 43 },
44 44 "custom-properties": { // properties registered dynamically
45   - "cell-indices": [0,0],// property to specify the top-left cell this child occupies
  45 + "cell-indices": [0,0], // property to specify the top-left cell this child occupies
46 46 "row-span":4, // property to specify how many rows this child occupies, if not set, default value is 1
47   - "column-spam":1 // property to specify how many columns this child occupies, if nor set, defualt cvalue is 1
  47 + "column-span":1 // property to specify how many columns this child occupies, if nor set, defualt cvalue is 1
48 48 }
49 49 },{
50 50 "name":"gallery-2",
51 51 "type":"ImageActor",
  52 + "width-resize-policy":"FILL_TO_PARENT",
  53 + "height-resize-policy":"FILL_TO_PARENT",
52 54 "image": {
53 55 "filename": "{DALI_IMAGE_DIR}gallery-large-2.jpg"
54 56 },
... ... @@ -59,6 +61,8 @@
59 61 }, {
60 62 "name":"gallery-3",
61 63 "type":"ImageActor",
  64 + "width-resize-policy":"FILL_TO_PARENT",
  65 + "height-resize-policy":"FILL_TO_PARENT",
62 66 "image": {
63 67 "filename": "{DALI_IMAGE_DIR}gallery-large-3.jpg"
64 68 },
... ... @@ -68,6 +72,8 @@
68 72 }, {
69 73 "name":"gallery-4",
70 74 "type":"ImageActor",
  75 + "width-resize-policy":"FILL_TO_PARENT",
  76 + "height-resize-policy":"FILL_TO_PARENT",
71 77 "image": {
72 78 "filename": "{DALI_IMAGE_DIR}gallery-large-4.jpg"
73 79 },
... ...
resources/scripts/timing.json
... ... @@ -91,6 +91,8 @@
91 91 "name": "ControlBack",
92 92 "parent-origin": "CENTER",
93 93 "anchor-point": "CENTER",
  94 + "width-resize-policy": "FILL_TO_PARENT",
  95 + "height-resize-policy": "FILL_TO_PARENT",
94 96 "position": [
95 97 0,
96 98 0,
... ...
resources/style/demo-theme.json 0 → 100644
  1 +/*
  2 +Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
  3 +
  4 +This file is part of Dali Toolkit
  5 +
  6 +PROPRIETARY/CONFIDENTIAL
  7 +
  8 +This software is the confidential and proprietary information of
  9 +SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
  10 +disclose such Confidential Information and shall use it only in
  11 +accordance with the terms of the license agreement you entered
  12 +into with SAMSUNG ELECTRONICS.
  13 +
  14 +SAMSUNG make no representations or warranties about the suitability
  15 +of the software, either express or implied, including but not limited
  16 +to the implied warranties of merchantability, fitness for a particular
  17 +purpose, or non-infringement. SAMSUNG shall not be liable for any
  18 +damages suffered by licensee as a result of using, modifying or
  19 +distributing this software or its derivatives.
  20 +*/
  21 +
  22 +{
  23 + "styles":
  24 + {
  25 + "textlabel":
  26 + {
  27 + "font-family":"HelveticaNeue",
  28 + "font-style":"Regular",
  29 + "point-size":18
  30 + },
  31 +
  32 + "launcherlabel":
  33 + {
  34 + "point-size":18
  35 + },
  36 +
  37 + "toolbarlabel":
  38 + {
  39 + "point-size":18
  40 + },
  41 +
  42 + "builderlabel":
  43 + {
  44 + "point-size":13
  45 + },
  46 +
  47 + "textfield":
  48 + {
  49 + "font-family":"HelveticaNeue",
  50 + "font-style":"Regular",
  51 + "point-size":18
  52 + },
  53 +
  54 + "scrollview":
  55 + {
  56 + "overshoot-effect-color":"B018"
  57 + }
  58 + }
  59 +}
... ...
resources/style/mobile/demo-theme.json 0 → 100644
  1 +/*
  2 +Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved
  3 +
  4 +This file is part of Dali Toolkit
  5 +
  6 +PROPRIETARY/CONFIDENTIAL
  7 +
  8 +This software is the confidential and proprietary information of
  9 +SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
  10 +disclose such Confidential Information and shall use it only in
  11 +accordance with the terms of the license agreement you entered
  12 +into with SAMSUNG ELECTRONICS.
  13 +
  14 +SAMSUNG make no representations or warranties about the suitability
  15 +of the software, either express or implied, including but not limited
  16 +to the implied warranties of merchantability, fitness for a particular
  17 +purpose, or non-infringement. SAMSUNG shall not be liable for any
  18 +damages suffered by licensee as a result of using, modifying or
  19 +distributing this software or its derivatives.
  20 +*/
  21 +
  22 +{
  23 + "styles":
  24 + {
  25 + "textlabel":
  26 + {
  27 + "font-family":"SamsungSans",
  28 + "font-style":"Regular"
  29 + },
  30 +
  31 + "textlabel-font-size-0":
  32 + {
  33 + "point-size":8
  34 + },
  35 + "textlabel-font-size-1":
  36 + {
  37 + "point-size":10
  38 + },
  39 + "textlabel-font-size-2":
  40 + {
  41 + "point-size":15
  42 + },
  43 + "textlabel-font-size-3":
  44 + {
  45 + "point-size":19
  46 + },
  47 + "textlabel-font-size-4":
  48 + {
  49 + "point-size":25
  50 + },
  51 +
  52 + "launcherlabel":
  53 + {
  54 + "point-size":10
  55 + },
  56 +
  57 + "toolbarlabel":
  58 + {
  59 + "point-size":10
  60 + },
  61 +
  62 + "builderlabel":
  63 + {
  64 + "point-size":10
  65 + },
  66 +
  67 + "textfield":
  68 + {
  69 + "font-family":"SamsungSans",
  70 + "font-style":"Regular"
  71 + },
  72 +
  73 + "textfield-font-size-0":
  74 + {
  75 + "point-size":10
  76 + },
  77 + "textfield-font-size-1":
  78 + {
  79 + "point-size":10
  80 + },
  81 + "textfield-font-size-2":
  82 + {
  83 + "point-size":10
  84 + },
  85 + "textfield-font-size-3":
  86 + {
  87 + "point-size":10
  88 + },
  89 + "textfield-font-size-4":
  90 + {
  91 + "point-size":10
  92 + },
  93 +
  94 + "scrollview":
  95 + {
  96 + "overshoot-effect-color":"B018"
  97 + }
  98 + }
  99 +}
... ...
shared/dali-demo-strings.h 0 → 100644
  1 +/*
  2 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + *
  16 + */
  17 +
  18 +/* This header file includes all multi language strings which need display */
  19 +#ifndef __DALI_DEMO_STRINGS_H__
  20 +#define __DALI_DEMO_STRINGS_H__
  21 +
  22 +#include <libintl.h>
  23 +
  24 +#ifdef __cplusplus
  25 +extern "C"
  26 +{
  27 +#endif // __cplusplus
  28 +
  29 +#define DALI_DEMO_DOMAIN_LOCAL "dali-demo"
  30 +
  31 +#define DALI_DEMO_STR_EMPTY _("")
  32 +
  33 +#ifdef INTERNATIONALIZATION_ENABLED
  34 +
  35 +#define DALI_DEMO_STR_TITLE_BUBBLES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUBBLES")
  36 +#define DALI_DEMO_STR_TITLE_BLOCKS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BLOCKS")
  37 +#define DALI_DEMO_STR_TITLE_CLUSTER dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CLUSTER")
  38 +#define DALI_DEMO_STR_TITLE_CUBE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CUBE_TRANSITION")
  39 +#define DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION")
  40 +#define DALI_DEMO_STR_TITLE_ITEM_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ITEM_VIEW")
  41 +#define DALI_DEMO_STR_TITLE_MAGNIFIER dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MAGNIFIER")
  42 +#define DALI_DEMO_STR_TITLE_MOTION_BLUR dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MOTION_BLUR")
  43 +#define DALI_DEMO_STR_TITLE_MOTION_STRETCH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MOTION_STRETCH")
  44 +#define DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW")
  45 +#define DALI_DEMO_STR_TITLE_RADIAL_MENU dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RADIAL_MENU")
  46 +#define DALI_DEMO_STR_TITLE_REFRACTION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_REFRACTION")
  47 +#define DALI_DEMO_STR_TITLE_SCROLL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCROLL_VIEW")
  48 +#define DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS")
  49 +#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI")
  50 +#define DALI_DEMO_STR_TITLE_IMAGE_SCALING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_SCALING")
  51 +#define DALI_DEMO_STR_TITLE_TEXT_LABEL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL")
  52 +#define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE")
  53 +#define DALI_DEMO_STR_TITLE_EMOJI_TEXT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_EMOJI_TEXT")
  54 +#define DALI_DEMO_STR_TITLE_ANIMATED_SHAPES dgettext(DALI_DEMO_STR_TITLE_ANIMATED_SHAPES)
  55 +#define DALI_DEMO_STR_TITLE_PATH_ANIMATION dgettext(DALI_DEMO_STR_TITLE_PATH_ANIMATION)
  56 +
  57 +#else // !INTERNATIONALIZATION_ENABLED
  58 +
  59 +#define DALI_DEMO_STR_TITLE_BUBBLES "Bubbles"
  60 +#define DALI_DEMO_STR_TITLE_BLOCKS "Blocks"
  61 +#define DALI_DEMO_STR_TITLE_CLUSTER "Cluster"
  62 +#define DALI_DEMO_STR_TITLE_CUBE_TRANSITION "Cube Effect"
  63 +#define DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION "Dissolve Effect"
  64 +#define DALI_DEMO_STR_TITLE_ITEM_VIEW "Item View"
  65 +#define DALI_DEMO_STR_TITLE_MAGNIFIER "Magnifier"
  66 +#define DALI_DEMO_STR_TITLE_MOTION_BLUR "Motion Blur"
  67 +#define DALI_DEMO_STR_TITLE_MOTION_STRETCH "Motion Stretch"
  68 +#define DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW "Page Turn View"
  69 +#define DALI_DEMO_STR_TITLE_RADIAL_MENU "Radial Menu"
  70 +#define DALI_DEMO_STR_TITLE_REFRACTION "Refract Effect"
  71 +#define DALI_DEMO_STR_TITLE_SCROLL_VIEW "Scroll View"
  72 +#define DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS "Lights and shadows"
  73 +#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI"
  74 +#define DALI_DEMO_STR_TITLE_IMAGE_SCALING "Image Scaling Modes"
  75 +#define DALI_DEMO_STR_TITLE_TEXT_LABEL "Text Label"
  76 +#define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE "Text Scripts"
  77 +#define DALI_DEMO_STR_TITLE_EMOJI_TEXT "Emoji Text"
  78 +#define DALI_DEMO_STR_TITLE_ANIMATED_SHAPES "Animated Shapes"
  79 +#define DALI_DEMO_STR_TITLE_PATH_ANIMATION "Animated Path"
  80 +
  81 +#endif
  82 +
  83 +#ifdef __cplusplus
  84 +}
  85 +#endif // __cplusplus
  86 +
  87 +#endif // __DALI_DEMO_STRINGS_H__
... ...
shared/multi-language-strings.h 0 → 100644
  1 +#ifndef __DALI_DEMO_MULTI_LANGUAGE_STRINGS_H__
  2 +#define __DALI_DEMO_MULTI_LANGUAGE_STRINGS_H__
  3 +
  4 +/*
  5 + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
  6 + *
  7 + * Licensed under the Apache License, Version 2.0 (the "License");
  8 + * you may not use this file except in compliance with the License.
  9 + * You may obtain a copy of the License at
  10 + *
  11 + * http://www.apache.org/licenses/LICENSE-2.0
  12 + *
  13 + * Unless required by applicable law or agreed to in writing, software
  14 + * distributed under the License is distributed on an "AS IS" BASIS,
  15 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16 + * See the License for the specific language governing permissions and
  17 + * limitations under the License.
  18 + *
  19 + */
  20 +
  21 +// EXTERNAL INCLUDES
  22 +#include <string>
  23 +
  24 +namespace MultiLanguageStrings
  25 +{
  26 + struct Language
  27 + {
  28 + std::string languageName;
  29 + std::string languageRomanName;
  30 + std::string text;
  31 + };
  32 +
  33 + const Language LANGUAGES[] = {
  34 + {
  35 + "العَرَبِيةُ",
  36 + "(Arabic)",
  37 + "لإعادة ترتيب الشاشات، يجب تغيير نوع العرض إلى شبكة قابلة للتخصيص."
  38 + },
  39 + {
  40 + "অসমীয়া লিপি",
  41 + "(Assamese)",
  42 + "পৃষ্ঠাসমূহ পুনঃব্যৱস্থিত কৰিবলৈ, আপুনি দৰ্শনৰ প্ৰকাৰ এটা অনুকূলনযোগ্য গ্ৰীডলৈ পৰিৱৰ্তন কৰাটো আৱশ্যক৷"
  43 + },
  44 + {
  45 + "বাংলা",
  46 + "(Bengali)",
  47 + "তথ্য লোড করতে অক্ষম৷ পুনরায় চেষ্টা করতে ট্যাপ করুন৷"
  48 + },
  49 + {
  50 + "English",
  51 + "(English)",
  52 + "A Quick Brown Fox Jumps Over The Lazy Dog"
  53 + },
  54 + {
  55 + "Español",
  56 + "(Spanish)",
  57 + "No se puede añadir más aplicaciones. Se alcanzó la cantidad máxima."
  58 + },
  59 + {
  60 + "فارسی",
  61 + "(Persian)",
  62 + "برای مرتب کردن مجدد صفحه‌ها، باید نوع نمایش را به یک نمای شبکه‌ای قابل تنظیم تغییر دهید."
  63 + },
  64 + {
  65 + "Français",
  66 + "(French)",
  67 + "La nouvelle page sera composée des Dynamic Box S Planner, Tâches et S Memo"
  68 + },
  69 + {
  70 + "ગુજરાતી લિપિ",
  71 + "(Gujarati)",
  72 + "પૃષ્ઠોને ફરીથી ગોઠવવા માટે, તમારે દૃશ્ય પ્રકારને કસ્ટમાઇઝેશન યોગ્ય ગ્રિડ પર બદલવાની જરૂર છે."
  73 + },
  74 + {
  75 + "हिन्दी",
  76 + "(Hindi)",
  77 + "पेज पुनः व्यवस्थित करने के लिए, आपको दृश्य प्रकार को अनुकूलित करने योग्य ग्रिड में बदलना होगा।"
  78 + },
  79 + {
  80 + "Bahasa Indonesia",
  81 + "(Indonesian)",
  82 + "Tidak dapat menambahkan aplikasi lagi. Jumlah maksimum aplikasi tercapai."
  83 + },
  84 + {
  85 + "ខេមរភាសា",
  86 + "(Cambodian)",
  87 + "ដើម្បី​រៀបចំ​ទំព័រ​ឡើងវិញ អ្នក​ត្រូវ​ប្ដូរ​ប្រភេទ​បង្ហាញ​ទៅ​ក្រឡាចត្រង្គ​ដែល​អាច​ប្ដូរ​តាមបំណង។"
  88 + },
  89 + {
  90 + "ಕನ್ನಡ ",
  91 + "(Kannada)",
  92 + "ಪುಟಗಳನ್ನು ಮರುವ್ಯವಸ್ಥಿತವಾಗಿ ಇರಿಸಲು, ನೀವು ವೀಕ್ಷಣೆ ವಿಧವನ್ನು ಗ್ರಾಹಕೀಕರಿಸಬಲ್ಲ ಗ್ರಿಡ್‌ಗೆ ಬದಲಾಯಿಸುವುದು ಅಗತ್ಯವಿದೆ."
  93 + },
  94 + {
  95 + "한국어",
  96 + "(Korean)",
  97 + "페이지 순서를 변경하려면 보기 방식을 격자 보기(직접 설정)로 변경하세요."
  98 + },
  99 + {
  100 + "ພາສາລາວ",
  101 + "(Lao)",
  102 + "ເພື່ອຈັດລຽງໜ້າຄືນ, ທ່ານຈໍາເປັນຕ້ອງປ່ຽນຊະນິດຂອງມຸມມອງໄປຫາຕາຕະລາງທີ່ກຳນົດເອງໄດ້."
  103 + },
  104 + {
  105 + "മലയാളം",
  106 + "(Malayalam)",
  107 + "പേജുകൾ പുനഃക്രമീകരിക്കുന്നതിന്, ഇഷ്ടാനുസൃതമാക്കാവുന്ന ഗ്രിഡിലേക്ക് കാഴ്ചയുടെ തരം നിങ്ങൾ മാറ്റേണ്ടതുണ്ട്."
  108 + },
  109 + {
  110 + "मराठी",
  111 + "(Marathi)",
  112 + "पृष्‍ठांची पुनर्रचना करा, आपण सानुकूलित करण्‍यायोग्‍य ग्रिडमध्‍ये व्‍ह्यू प्रकार बदलणे गरजेचे आहे."
  113 + },
  114 + {
  115 + "Bahasa Melayu",
  116 + "(Malay)",
  117 + "Tidak boleh menambah aplikasi lagi. Bilangan maksimum aplikasi dicapai."
  118 + },
  119 + {
  120 + "မြန်မာဘာသာ",
  121 + "(Burmese)",
  122 + "စာမ်က္ႏွာမ်ား ျပန္စီစဥ္ရန္ အျမင္ပံုစံကို စိတ္ၾကိဳက္လုပ္ႏိုင္ေသာ ဂရစ္ တစ္ခုသို႔ ေျပာင္းဖို႔လိုသည္။"
  123 + },
  124 + {
  125 + "नेपाली",
  126 + "(Nepali)",
  127 + "थप अनुप्रयोगहरू थप्न सकिएन। अनुप्रयोगहरूको अधिकतम संख्या पुग्यो।"
  128 + },
  129 + {
  130 + "ଓଡ଼ିଆ",
  131 + "(Oriya)",
  132 + "ପରବର୍ତ୍ତୀ ପୃଷ୍ଠା ଦେଖିବା ପାଇଁ ଦୁଇ ଆଙ୍ଗୁଠିରେ ସ୍ୱାଇପ୍ କରନ୍ତୁ।"
  133 + },
  134 + {
  135 + "ਗੁਰਮੁਖੀ",
  136 + "(Punjabi)",
  137 + "ਇਹ ਫੋਲਡਰ ਅਤੇ ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਸਾਰੇ ਆਈਟਮਾਂ ਨੂੰ ਮਿਟਾ ਦੇਵੇਗਾ।"
  138 + },
  139 + {
  140 + "Português",
  141 + "(Portuguese)",
  142 + "Para reorganizar páginas, é necessário alterar o tipo de exibição para uma grade personalizável."
  143 + },
  144 + {
  145 + "සිංහල",
  146 + "(Sinhala)",
  147 + "පිටු නැවත පෙළ ගැස්වීම සඳහා ඔබ විසින් දසුන් ප්‍රවර්ගය අභිමතීකෘත්‍ය ජාලයකට වෙනස් කළ යුතුය."
  148 + },
  149 + {
  150 + "தமிழ்",
  151 + "(Tamil)",
  152 + "பக்கங்களை மறுஒழுங்குபடுத்தவென காட்சி வகையை தனிப்பயனாக்கத்தக்க கட்டமைப்பிற்கு மாற்ற வேண்டியுள்ளது."
  153 + },
  154 + {
  155 + "తెలుగు",
  156 + "(Telugu)",
  157 + "మరిన్ని అప్లికేషన్‌లను జోడించడం సాధ్యం కాలేదు. గరిష్ట అప్లికేషన్‌ల సంఖ్యను చేరుకున్నాయి."
  158 + },
  159 + {
  160 + "ภาษาไทย",
  161 + "(Thai)",
  162 + "คุณต้องเปลี่ยนชนิดการแสดง เป็นตารางที่กำหนดเองได้ เพื่อจัดหน้าใหม่"
  163 + },
  164 + {
  165 + "Tagalog",
  166 + "(Tagalog)",
  167 + "Hindi makapagdagdag ng extra na linya dahil sa paghihigpit sa espasyo"
  168 + },
  169 + {
  170 + "Türkçe",
  171 + "(Turkish)",
  172 + "Sayfaları yeniden düzenlemek için özelleştirilebilir kılavuzun görünüm tipini değiştirmeniz gerekir."
  173 + },
  174 + {
  175 + "اُردُو",
  176 + "(Urdu)",
  177 + "صفحات کو دوبارہ ترتیب دینے کے لئے، آپ کو منظر کی قسم کو ایک حسب ضرورت گرڈ میں تبدیل کرنا ہوگا۔"
  178 + },
  179 + {
  180 + "tiếng Việt",
  181 + "(Vietnamese)",
  182 + "Để sắp xếp lại các trang, bạn cần thay đổi kiểu xem sang dạng lưới tùy chỉnh."
  183 + },
  184 + {
  185 + "漢語",
  186 + "(Chinese)",
  187 + "若要重新排列页面,您需要将视图类型更改为可自定义网格。"
  188 + },
  189 + };
  190 +
  191 + const unsigned int NUMBER_OF_LANGUAGES = 31u;
  192 +
  193 +} // MultiLanguageStrings
  194 +
  195 +#endif // __DALI_DEMO_MULTI_LANGUAGE_STRINGS_H__
... ...
shared/view.h
... ... @@ -45,15 +45,18 @@ const ViewStyle DEFAULT_VIEW_STYLE( 0.1f, 0.7f, 80.f, 4.f );
45 45  
46 46 const char* DEFAULT_TEXT_STYLE_FONT_FAMILY("HelveticaNue");
47 47 const char* DEFAULT_TEXT_STYLE_FONT_STYLE("Regular");
48   -const Dali::PointSize DEFAULT_TEXT_STYLE_POINT_SIZE( 8.0f );
49   -const Dali::TextStyle::Weight DEFAULT_TEXT_STYLE_WEIGHT(Dali::TextStyle::EXTRALIGHT);
  48 +const float DEFAULT_TEXT_STYLE_POINT_SIZE( 8.0f );
50 49 const Dali::Vector4 DEFAULT_TEXT_STYLE_COLOR(0.0f, 0.0f, 0.0f, 1.0f);
51 50  
52 51 const Dali::Toolkit::Alignment::Padding DEFAULT_PLAY_PADDING(12.0f, 12.0f, 12.0f, 12.0f);
53 52 const Dali::Toolkit::Alignment::Padding DEFAULT_MODE_SWITCH_PADDING(8.0f, 8.0f, 8.0f, 8.0f);
54 53  
55   -static Dali::TextStyle defaultTextStyle;
56   -static bool textStyleSet=false;
  54 +void RequestThemeChange()
  55 +{
  56 + // Provide the stylesheet
  57 + Dali::Toolkit::StyleManager styleManager = Dali::Toolkit::StyleManager::Get();
  58 + styleManager.RequestThemeChange( DALI_DEMO_THEME_PATH );
  59 +}
57 60  
58 61 float ScalePointSize(int pointSize)
59 62 {
... ... @@ -62,27 +65,13 @@ float ScalePointSize(int pointSize)
62 65 return pointSize * 220.0f / meanDpi; // 220 is the default horizontal DPI defined in adaptor Application
63 66 }
64 67  
65   -Dali::TextStyle& GetDefaultTextStyle()
66   -{
67   - if(!textStyleSet)
68   - {
69   - defaultTextStyle.SetFontName(DEFAULT_TEXT_STYLE_FONT_FAMILY);
70   - defaultTextStyle.SetFontStyle(DEFAULT_TEXT_STYLE_FONT_STYLE);
71   - defaultTextStyle.SetFontPointSize(Dali::PointSize(ScalePointSize(DEFAULT_TEXT_STYLE_POINT_SIZE)));
72   - defaultTextStyle.SetWeight(DEFAULT_TEXT_STYLE_WEIGHT);
73   - defaultTextStyle.SetTextColor(DEFAULT_TEXT_STYLE_COLOR);
74   - textStyleSet = true;
75   - }
76   -
77   - return defaultTextStyle;
78   -}
79   -
80 68 Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar& toolBar,
81 69 const std::string& toolbarImagePath,
82 70 const std::string& title,
83   - const ViewStyle& style,
84   - const Dali::TextStyle& textStyle )
  71 + const ViewStyle& style )
85 72 {
  73 + Dali::Stage stage = Dali::Stage::GetCurrent();
  74 +
86 75 Dali::Layer toolBarLayer = Dali::Layer::New();
87 76 toolBarLayer.SetName( "TOOLBAR_LAYER" );
88 77 toolBarLayer.SetAnchorPoint( Dali::AnchorPoint::TOP_CENTER );
... ... @@ -109,20 +98,22 @@ Dali::Layer CreateToolbar( Dali::Toolkit::ToolBar&amp; toolBar,
109 98 // Add the tool bar to the too bar layer.
110 99 toolBarLayer.Add( toolBar );
111 100  
112   - Dali::Font font = Dali::Font::New();
113   -
114 101 // Tool bar text.
115 102 if( !title.empty() )
116 103 {
117   - Dali::Toolkit::TextView titleActor = Dali::Toolkit::TextView::New();
118   - titleActor.SetName( "TOOLBAR_TITLE" );
119   - titleActor.SetText( title );
120   - titleActor.SetSize( font.MeasureText( title ) );
121   - titleActor.SetStyleToCurrentText(textStyle);
  104 + Dali::Toolkit::TextLabel label = Dali::Toolkit::TextLabel::New();
  105 + label.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
  106 + label.SetDrawMode( Dali::DrawMode::OVERLAY );
  107 + label.SetProperty( Dali::Toolkit::Control::Property::STYLE_NAME, "toolbarlabel" );
  108 + label.SetProperty( Dali::Toolkit::TextLabel::Property::TEXT, title );
  109 + label.SetProperty( Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
  110 + label.SetProperty( Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
  111 + label.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::HEIGHT );
  112 + label.SetColor( DEFAULT_TEXT_STYLE_COLOR );
122 113  
123 114 // Add title to the tool bar.
124 115 const float padding( style.mToolBarPadding );
125   - toolBar.AddControl( titleActor, style.mToolBarTitlePercentage, Dali::Toolkit::Alignment::HorizontalCenter, Dali::Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
  116 + toolBar.AddControl( label, style.mToolBarTitlePercentage, Dali::Toolkit::Alignment::HorizontalCenter, Dali::Toolkit::Alignment::Padding( padding, padding, padding, padding ) );
126 117 }
127 118  
128 119 return toolBarLayer;
... ... @@ -134,8 +125,7 @@ Dali::Layer CreateView( Dali::Application&amp; application,
134 125 const std::string& backgroundImagePath,
135 126 const std::string& toolbarImagePath,
136 127 const std::string& title,
137   - const ViewStyle& style,
138   - const Dali::TextStyle& textStyle )
  128 + const ViewStyle& style = DEFAULT_VIEW_STYLE )
139 129 {
140 130 Dali::Stage stage = Dali::Stage::GetCurrent();
141 131  
... ... @@ -163,7 +153,7 @@ Dali::Layer CreateView( Dali::Application&amp; application,
163 153 //application.GetOrientation().ChangedSignal().Connect( &view, &Dali::Toolkit::View::OrientationChanged );
164 154  
165 155 // Create default ToolBar
166   - Dali::Layer toolBarLayer = CreateToolbar( toolBar, toolbarImagePath, title, style, textStyle );
  156 + Dali::Layer toolBarLayer = CreateToolbar( toolBar, toolbarImagePath, title, style );
167 157  
168 158 // Add tool bar layer to the view.
169 159 view.AddContentLayer( toolBarLayer );
... ... @@ -179,19 +169,19 @@ Dali::Layer CreateView( Dali::Application&amp; application,
179 169 return contentLayer;
180 170 }
181 171  
182   -Dali::Layer CreateView( Dali::Application& application,
183   - Dali::Toolkit::View& view,
184   - Dali::Toolkit::ToolBar& toolBar,
185   - const std::string& backgroundImagePath,
186   - const std::string& toolbarImagePath,
187   - const std::string& title,
188   - const ViewStyle& style = DEFAULT_VIEW_STYLE )
  172 +Dali::Toolkit::TextLabel CreateToolBarLabel( const std::string& text )
189 173 {
190   - return CreateView( application, view, toolBar, backgroundImagePath, toolbarImagePath, title, style,
191   - GetDefaultTextStyle() );
  174 + Dali::Toolkit::TextLabel label = Dali::Toolkit::TextLabel::New( text );
  175 + label.SetProperty( Dali::Toolkit::Control::Property::STYLE_NAME, "toolbarlabel" );
  176 + label.SetDrawMode( Dali::DrawMode::OVERLAY );
  177 + label.SetProperty( Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
  178 + label.SetProperty( Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
  179 + label.SetResizePolicy( Dali::FILL_TO_PARENT, Dali::HEIGHT );
  180 + label.SetColor( DEFAULT_TEXT_STYLE_COLOR );
  181 +
  182 + return label;
192 183 }
193 184  
194   -
195 185 } // DemoHelper
196 186  
197 187 #endif // __DALI_DEMO_HELPER_VIEW_H__
... ...